Dasar-dasar SQL

Pelajari tentang DDL, DML, dan GABUNG

The Structured Query Language adalah salah satu blok bangunan dasar arsitektur database modern. SQL mendefinisikan metode yang digunakan untuk membuat dan memanipulasi database relasional pada semua platform utama. Pada pandangan pertama, bahasa mungkin tampak mengintimidasi dan rumit, tetapi itu tidak terlalu sulit.

Pengenalan ini pada dasar-dasar di belakang SQL mengambil pandangan sekilas pada beberapa perintah utama yang digunakan untuk membuat dan memodifikasi basis data.

Tentang SQL

Pelafalan yang benar dari SQL adalah masalah kontroversial dalam komunitas basis data. Dalam standar SQL-nya, American National Standards Institute menyatakan bahwa pelafalan resmi adalah "es antrian el." Namun, banyak profesional basis data telah menggunakan slang pengucapan "sekuel." Pilihan ada padamu.

SQL hadir dalam banyak rasa. Database Oracle menggunakan PL / SQL miliknya. Microsoft SQL Server menggunakan Transact-SQL. Semua variasi didasarkan pada standar industri ANSI SQL. Pengenalan ini menggunakan perintah SQL ANSI-compliant yang bekerja pada sistem database relasional modern.

DDL dan DML

Perintah SQL dapat dibagi menjadi dua sub-bahasa utama. Bahasa Definisi Data (DDL) berisi perintah yang digunakan untuk membuat dan menghancurkan database dan objek database. Setelah struktur database didefinisikan dengan DDL, administrator database dan pengguna dapat menggunakan Data Manipulation Language (DML) untuk menyisipkan, mengambil dan mengubah data yang ada di dalamnya.

Perintah Bahasa Definisi Data

Bahasa Definisi Data digunakan untuk membuat dan menghancurkan database dan objek database. Perintah-perintah ini terutama digunakan oleh administrator database selama fase setup dan penghapusan proyek database. Berikut adalah tampilan struktur dan penggunaan empat perintah DDL dasar:

MEMBUAT. Menginstal sistem manajemen basis data pada komputer memungkinkan Anda untuk membuat dan mengelola banyak basis data independen. Misalnya, Anda mungkin ingin memelihara basis data kontak pelanggan untuk departemen penjualan Anda dan basis data karyawan untuk departemen SDM Anda. Perintah CREATE digunakan untuk membuat masing-masing basis data ini di platform Anda. Misalnya, perintah:

BUAT karyawan DATABASE

membuat database kosong bernama "karyawan" di DBMS Anda. Setelah membuat database, langkah selanjutnya adalah membuat tabel yang berisi data. Varian lain dari perintah CREATE dapat digunakan untuk tujuan ini. Perintah:

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

menetapkan tabel berjudul "personal_info" di database saat ini. Dalam contoh, tabel berisi tiga atribut: first_name, last_name dan employee_id bersama dengan beberapa informasi tambahan.

MENGGUNAKAN. Perintah USE memungkinkan Anda untuk menentukan database yang ingin Anda kerjakan dalam DBMS Anda. Misalnya, jika Anda saat ini bekerja di database penjualan dan ingin mengeluarkan beberapa perintah yang akan mempengaruhi basis data karyawan, awali dengan perintah SQL berikut:

GUNAKAN karyawan

Sangat penting untuk selalu menyadari database yang Anda kerjakan sebelum mengeluarkan perintah SQL yang memanipulasi data.

MENGUBAH. Setelah Anda membuat tabel dalam database, Anda mungkin ingin mengubah definisinya. Perintah ALTER memungkinkan Anda untuk mengubah struktur tabel tanpa menghapus dan membuatnya kembali. Lihatlah perintah berikut:

ALTER TABLE personal_info ADD uang gaji nol

Contoh ini menambahkan atribut baru ke tabel personal_info — gaji karyawan. Argumen "uang" menentukan bahwa gaji karyawan disimpan menggunakan format dolar dan sen. Akhirnya, kata kunci "null" memberi tahu basis data bahwa tidak apa-apa untuk bidang ini tidak mengandung nilai bagi karyawan yang diberikan.

PENURUNAN. Perintah akhir dari Bahasa Definisi Data, DROP, memungkinkan kita untuk menghapus seluruh objek database dari DBMS kami. Misalnya, jika kami ingin menghapus secara permanen tabel personal_info yang kami buat, kami akan menggunakan perintah berikut:

DROP TABLE personal_info

Demikian pula, perintah di bawah ini akan digunakan untuk menghapus seluruh database karyawan:

DROP DATABASE karyawan

Gunakan perintah ini dengan hati-hati. Perintah DROP menghapus seluruh struktur data dari database Anda. Jika Anda ingin menghapus rekaman individu, gunakan perintah DELETE dari Data Manipulation Language.

Perintah Bahasa Manipulasi Data

Data Manipulation Language (DML) digunakan untuk mengambil, memasukkan dan mengubah informasi basis data. Perintah-perintah ini digunakan oleh semua pengguna database selama operasi rutin dari database.

MEMASUKKAN. Perintah INSERT dalam SQL digunakan untuk menambahkan catatan ke tabel yang sudah ada. Kembali ke contoh personal_info dari bagian sebelumnya, bayangkan bahwa departemen SDM kami perlu menambahkan karyawan baru ke database-nya. Anda bisa menggunakan perintah yang mirip dengan ini:

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

Perhatikan bahwa ada empat nilai yang ditentukan untuk catatan. Ini sesuai dengan atribut tabel dalam urutan yang ditentukan: first_name, last_name, employee_id dan gaji.

MEMILIH. Perintah SELECT adalah perintah yang paling umum digunakan dalam SQL. Ini memungkinkan pengguna database untuk mengambil informasi spesifik yang mereka inginkan dari database operasional. Lihatlah beberapa contoh, sekali lagi menggunakan tabel personal_info dari database karyawan.

Perintah yang ditunjukkan di bawah ini mengambil semua informasi yang terdapat dalam tabel personal_info. Perhatikan bahwa tanda bintang digunakan sebagai wildcard di SQL. Ini secara harfiah berarti "Pilih semuanya dari tabel personal_info."

PILIH * DARI personal_info

Atau, pengguna mungkin ingin membatasi atribut yang diambil dari database. Sebagai contoh, departemen Sumber Daya Manusia mungkin memerlukan daftar nama belakang semua karyawan di perusahaan. Perintah SQL berikut hanya akan mengambil informasi itu:

SELECT last_name FROM personal_info

Klausa WHERE dapat digunakan untuk membatasi rekaman yang diambil untuk mereka yang memenuhi kriteria yang ditentukan. CEO mungkin tertarik untuk meninjau catatan personil semua karyawan yang dibayar tinggi. Perintah berikut mengambil semua data yang terdapat dalam personal_info untuk catatan yang memiliki nilai gaji lebih besar dari $ 50.000:

PILIH * FROM personal_info WHERE gaji> $ 50000

MEMPERBARUI. Perintah UPDATE dapat digunakan untuk mengubah informasi yang terkandung dalam tabel, baik dalam jumlah besar atau secara individual. Asumsikan perusahaan memberi semua karyawan kenaikan biaya hidup sebesar 3 persen dalam gajinya setiap tahun. Perintah SQL berikut dapat digunakan untuk menerapkannya dengan cepat ke semua karyawan yang disimpan dalam database:

UPDATE personal_info SET gaji = gaji * 1,03

Ketika karyawan baru Bart Simpson menunjukkan kinerja di atas dan melampaui panggilan tugas, manajemen ingin mengakui pencapaiannya yang luar biasa dengan kenaikan $ 5.000. Klausa WHERE dapat digunakan untuk memilih Bart untuk kenaikan ini:

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

MENGHAPUS. Akhirnya, mari kita lihat perintah DELETE. Anda akan menemukan bahwa sintaks perintah ini mirip dengan perintah DML lainnya. Sayangnya, laporan pendapatan perusahaan terbaru kami tidak cukup memenuhi harapan dan Bart yang malang telah diberhentikan. Perintah DELETE dengan klausa WHERE dapat digunakan untuk menghapus catatannya dari tabel personal_info:

HAPUS DARI personal_info WHERE employee_id = 12345

GABUNG

Sekarang setelah Anda mempelajari dasar-dasar SQL, inilah saatnya untuk beralih ke salah satu konsep paling kuat yang ditawarkan bahasa — pernyataan JOIN. Pernyataan GABUNG memungkinkan Anda menggabungkan data dalam beberapa tabel untuk memproses secara efisien sejumlah besar data. Pernyataan-pernyataan ini adalah di mana kekuatan sebenarnya dari database berada.

Untuk menjelajahi penggunaan operasi GABUNG dasar untuk menggabungkan data dari dua tabel, lanjutkan dengan contoh menggunakan tabel PERSONAL_INFO dan tambahkan tabel tambahan ke campuran. Asumsikan Anda memiliki tabel yang disebut DISCIPLINARY_ACTION yang dibuat dengan pernyataan berikut:

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

Tabel ini berisi hasil tindakan disipliner pada karyawan perusahaan. Anda akan melihat bahwa itu tidak berisi informasi apa pun tentang karyawan selain nomor karyawan. Sangat mudah untuk membayangkan banyak skenario di mana Anda mungkin ingin menggabungkan informasi dari tabel DISCIPLINARY_ACTION dan PERSONAL_INFO.

Asumsikan Anda telah ditugaskan membuat laporan yang mencantumkan tindakan disipliner yang diambil terhadap semua karyawan dengan gaji lebih dari $ 40.000. Penggunaan operasi GABUNG, dalam hal ini, sangat mudah. Kami dapat mengambil informasi ini menggunakan perintah berikut:

PILIH 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 DAN personal_info.salary> 40000

Kode menentukan dua tabel yang ingin kita gabungkan dalam klausa FROM dan kemudian menyertakan pernyataan di klausa WHERE untuk membatasi hasil ke catatan yang memiliki ID karyawan yang cocok dan memenuhi kriteria gaji kami yang lebih besar dari $ 40.000.