Asas SQL

Ketahui mengenai DDL, DML dan JOIN

Bahasa Kuasa Terstruktur adalah salah satu daripada blok bangunan asas seni bina pangkalan data moden. SQL mentakrifkan kaedah yang digunakan untuk membuat dan memanipulasi pangkalan data hubungan pada semua platform utama. Pada pandangan pertama, bahasa itu mungkin kelihatan menakutkan dan kompleks, tetapi tidak semua itu sukar.

Pengenalan kepada asas-asas di belakang SQL mengambil pandangan ringkas mengenai beberapa arahan utama yang digunakan untuk membuat dan mengubah suai pangkalan data.

Mengenai SQL

Sebutan tepat SQL adalah isu perbalahan dalam komuniti pangkalan data. Dalam piawaian SQLnya, Institut Piawaian Kebangsaan Amerika mengisytiharkan bahawa sebutan rasmi adalah "es queue el." Walau bagaimanapun, banyak profesional pangkalan data telah mengambil sebutan slang "sekuel". Pilihan adalah milik anda.

SQL terdapat banyak perisa. Pangkalan data Oracle menggunakan PL / SQL proprietarinya. Microsoft SQL Server menggunakan Transact-SQL. Semua variasi berdasarkan ANSI SQL standard industri. Pengenalan ini menggunakan arahan SQL yang mematuhi ANSI yang berfungsi pada sistem pangkalan data relasional moden.

DDL dan DML

Perintah SQL boleh dibahagikan kepada dua sub-bahasa utama. Bahasa Definisi Data (DDL) mengandungi perintah yang digunakan untuk membuat dan memusnahkan pangkalan data dan objek pangkalan data. Selepas struktur pangkalan data ditakrifkan dengan DDL, pentadbir pangkalan data dan pengguna boleh menggunakan Bahasa Manipulasi Data (DML) untuk memasukkan, mengambil dan mengubah suai data yang terkandung di dalamnya.

Perintah Bahasa Definisi Data

Bahasa Definisi Data digunakan untuk membuat dan memusnahkan pangkalan data dan objek pangkalan data. Perintah ini digunakan terutamanya oleh pentadbir pangkalan data semasa fasa persediaan dan penyingkiran projek pangkalan data. Berikut adalah melihat struktur dan penggunaan empat arahan DDL asas:

CREATE. Memasang sistem pengurusan pangkalan data pada komputer membolehkan anda membuat dan mengurus banyak pangkalan data bebas. Sebagai contoh, anda mungkin ingin mengekalkan pangkalan data kenalan pelanggan untuk jabatan jualan anda dan pangkalan data kakitangan untuk jabatan HR anda. Perintah CREATE digunakan untuk menubuhkan setiap pangkalan data ini di platform anda. Sebagai contoh, arahan:

CREAT DATABASE pekerja

mewujudkan pangkalan data kosong yang dinamakan "pekerja" di DBMS anda. Setelah membuat pangkalan data, langkah seterusnya adalah untuk membuat jadual yang mengandungi data. Satu lagi variasi arahan CREATE boleh digunakan untuk tujuan ini. Perintah ini:

CREATE TABLE personal_info (first_name char (20) not null, last_name char (20) not null, employee_id int not null)

menetapkan jadual bertajuk "personal_info" dalam pangkalan data semasa. Dalam contoh, jadual mengandungi tiga atribut: first_name, last_name dan employee_id bersama dengan beberapa maklumat tambahan.

PENGGUNAAN. Perintah USE membolehkan anda menentukan pangkalan data yang ingin anda bekerjasama dalam DBMS anda. Sebagai contoh, jika anda sedang bekerja di pangkalan data jualan dan ingin mengeluarkan beberapa arahan yang akan mempengaruhi pangkalan data pekerja, nyatakan dengan perintah SQL berikut:

Pekerja USE

Adalah penting untuk selalu menyedari pangkalan data yang anda sedang kerjakan sebelum mengeluarkan arahan SQL yang memanipulasi data.

ALTER. Sebaik sahaja anda telah membuat jadual dalam pangkalan data, anda mungkin mahu mengubah suai definisi. Perintah ALTER membolehkan anda membuat perubahan pada struktur meja tanpa memadamkan dan menciptanya. Lihatlah arahan berikut:

ALTER TABLE personal_info Tarik gaji gaji null

Contoh ini menambah atribut baru ke jadual personal_info-gaji pekerja. Hujah "wang" menyatakan bahawa gaji pekerja disimpan menggunakan format dolar dan sen. Akhir kata, kata kunci "batal" memberitahu pangkalan data bahawa ia adalah OK untuk bidang ini tidak mengandungi nilai untuk setiap pekerja yang diberikan.

DROP. Perintah akhir Bahasa Pengertian Data, DROP, membolehkan kami menghapuskan keseluruhan objek pangkalan data dari DBMS kami. Sebagai contoh, jika kami ingin memadam jadual peribadi_info secara kekal yang kami buat, kami akan menggunakan arahan berikut:

DROP TABLE personal_info

Begitu juga, arahan di bawah akan digunakan untuk mengalih keluar pangkalan data keseluruhan pekerja:

Pekerja DROP DATABASE

Gunakan arahan ini dengan berhati-hati. Perintah DROP membuang keseluruhan struktur data dari pangkalan data anda. Jika anda mahu mengeluarkan rekod individu, gunakan arahan DELETE untuk Bahasa Manipulasi Data.

Perintah Bahasa Manipulasi Data

Bahasa Manipulasi Data (DML) digunakan untuk mengambil, memasukkan dan mengubah suai maklumat pangkalan data. Perintah ini digunakan oleh semua pengguna pangkalan data semasa operasi rutin pangkalan data.

INSERT. Perintah INSERT dalam SQL digunakan untuk menambah rekod pada jadual yang sedia ada. Kembali ke contoh personal_info dari bahagian sebelumnya, bayangkan bahawa jabatan HR kami perlu menambah pekerja baru ke pangkalan datanya. Anda boleh menggunakan perintah yang serupa dengan yang berikut:

INSERT INTO nilai personal_info ('bart', 'simpson', 12345, $ 45000)

Ambil perhatian bahawa terdapat empat nilai yang dinyatakan untuk rekod tersebut. Ini sesuai dengan atribut jadual dalam susunan yang telah ditakrifkan: first_name, last_name, employee_id dan gaji.

PILIH. Perintah SELECT ialah arahan yang paling biasa digunakan dalam SQL. Ia membolehkan pengguna pangkalan data mendapatkan maklumat khusus yang mereka inginkan dari pangkalan data operasi. Lihat beberapa contoh, sekali lagi menggunakan jadual personal_info dari pangkalan data pekerja.

Perintah yang ditunjukkan di bawah ini mengambil semua maklumat yang terkandung dalam jadual peribadi_info. Ambil perhatian bahawa asterisk digunakan sebagai wildcard dalam SQL. Ini bermaksud "Pilih segalanya dari jadual personal_info."

SELECT * FROM personal_info

Sebagai alternatif, pengguna mungkin mahu mengehadkan sifat-sifat yang diambil dari pangkalan data. Contohnya, Jabatan Sumber Manusia mungkin memerlukan senarai nama terakhir semua pekerja di syarikat itu. Perintah SQL berikut akan memperoleh maklumat tersebut sahaja:

Pilih last_name FROM personal_info

Fasal WHERE boleh digunakan untuk menghadkan rekod yang diambil kepada mereka yang memenuhi kriteria yang ditetapkan. Ketua Pegawai Eksekutif mungkin berminat untuk mengkaji rekod kakitangan semua pekerja yang sangat berbayar. Perintah berikut mengambil semua data yang terkandung dalam personal_info untuk rekod yang mempunyai nilai gaji lebih daripada $ 50,000:

SELECT * FROM personal_info WHERE salary> $ 50000

UPDATE. Perintah UPDATE boleh digunakan untuk mengubah suai maklumat yang terdapat di dalam jadual, sama ada secara pukal atau secara individu. Anggapkan syarikat itu memberi semua pekerja kos kenaikan kos 3 peratus dalam gaji mereka setiap tahun. Perintah SQL berikut boleh digunakan untuk dengan cepat memohon ini kepada semua pekerja yang disimpan dalam pangkalan data:

UPDATE personal_info SET gaji = gaji * 1.03

Apabila pekerja baru Bart Simpson menunjukkan prestasi di atas dan di luar panggilan tugas, pihak pengurusan ingin mengenali pencapaian cemerlangnya dengan kenaikan $ 5,000. Klausa WHERE boleh digunakan untuk memperlihatkan Bart untuk meningkatkan ini:

UPDATE personal_info SET gaji = gaji + $ 5000 WHERE employee_id = 12345

DELETE. Akhir sekali, mari kita lihat arahan DELETE. Anda akan mendapati bahawa sintaks arahan ini adalah serupa dengan perintah DML yang lain. Malangnya, laporan pendapatan korporat terbaharu kami tidak dapat memenuhi jangkaan dan Bart lemah telah dibuang. Perintah DELETE dengan klausa WHERE boleh digunakan untuk mengalih keluar rekodnya dari jadual personal_info:

DELETE FROM personal_info WHERE employee_id = 12345

JOIN

Sekarang bahawa anda telah mempelajari asas-asas SQL, sudah tiba masanya untuk beralih ke salah satu konsep yang paling kuat yang ditawarkan oleh bahasa itu-kenyataan JOIN. Kenyataan JOIN membolehkan anda menggabungkan data dalam berbilang jadual untuk memproses cekap data yang banyak. Kenyataan ini adalah di mana kuasa sebenar pangkalan data berada.

Untuk meneroka penggunaan operasi JOIN asas untuk menggabungkan data dari dua jadual, teruskan dengan contoh menggunakan jadual PERSONAL_INFO dan tambahkan jadual tambahan pada campuran. Anggapkan anda mempunyai jadual yang dipanggil DISCIPLINARY_ACTION yang telah dibuat dengan pernyataan berikut:

CREATE TABLE disciplinary_action (action_id int not null, employee_id int not null, comments char (500))

Jadual ini mengandungi keputusan tindakan tatatertib terhadap pekerja syarikat. Anda akan mendapati bahawa ia tidak mengandungi sebarang maklumat mengenai pekerja selain daripada bilangan pekerja. Adalah mudah untuk membayangkan banyak senario di mana anda mungkin mahu menggabungkan maklumat dari jadual DISCIPLINARY_ACTION dan PERSONAL_INFO.

Anggapkan anda telah ditugaskan untuk membuat laporan yang menyenaraikan tindakan tatatertib yang diambil terhadap semua pekerja dengan gaji lebih daripada $ 40,000. Penggunaan operasi JOIN, dalam kes ini, adalah mudah. Kami boleh mendapatkan maklumat ini dengan menggunakan arahan berikut:

SELECT personal_info.first_name, personal_info.last_name, disciplinary_action.comments FROM personal_info, disciplinary_action WHERE personal_info.employee_id = disciplinary_action.employee_id AND personal_info.salary> 40000

Kod ini menentukan dua jadual yang ingin kami sertai dalam klausa FROM dan kemudian memasukkan pernyataan dalam klausa WHERE untuk menghadkan hasil kepada rekod yang mempunyai ID pekerja yang sesuai dan memenuhi kriteria gaji yang melebihi $ 40,000.