Sekilas tentang Perintah SQL
Perintah SQL terbagi ke dalam beberapa kelompok menurut fungsinya. Tabel ini mencantumkan perintah yang paling sering kamu pakai, dan setiap bagian di bawahnya menjalankan salah satunya.
| Perintah | Kelompok | Fungsinya |
|---|---|---|
CREATE TABLE | DDL | Mendefinisikan tabel baru beserta kolom-kolomnya |
ALTER TABLE | DDL | Menambah atau mengganti nama kolom, atau mengganti nama tabel |
DROP TABLE | DDL | Menghapus tabel beserta semua barisnya |
INSERT | DML | Menambah baris baru |
UPDATE | DML | Mengubah nilai di baris yang sudah ada |
DELETE | DML | Menghapus baris |
SELECT | DQL | Membaca baris, difilter dengan WHERE dan diurutkan dengan ORDER BY |
BEGIN, COMMIT, ROLLBACK | TCL | Mengelompokkan perubahan agar berhasil atau gagal bersama-sama |
DDL adalah data definition language, DML adalah data manipulation language, DQL adalah data query language, dan TCL adalah transaction control language. Namanya tidak sepenting pembagiannya: DDL mengubah bentuk database, DML mengubah isinya.
CREATE TABLE: Mendefinisikan Tabel
CREATE TABLE memberi nama tabel dan mencantumkan kolom-kolomnya beserta tipe dan aturannya. Setiap perintah lain di halaman ini butuh tabel untuk dikerjakan.
Halaman CREATE TABLE membahas aturan seperti NOT NULL, UNIQUE, dan DEFAULT.
INSERT: Menambah Baris
INSERT INTO menambahkan satu atau beberapa baris. Tuliskan kolom-kolomnya, lalu nilainya dengan urutan yang sama.
Kolom id terisi dengan sendirinya: INTEGER PRIMARY KEY mendapat nomor berikutnya jika kamu tidak menuliskannya. Penjelasan lebih lanjut ada di INSERT.
SELECT: Membaca Baris
SELECT adalah perintah yang paling sering kamu tulis. Pilih kolomnya, filter baris dengan WHERE, dan urutkan dengan ORDER BY.
Hanya baris yang lolos pengujian WHERE yang dikembalikan, dimulai dari nilai tertinggi. Lihat dasar SELECT dan WHERE untuk detailnya.
UPDATE: Mengubah Baris
UPDATE mengisi nilai baru pada baris yang sudah ada. Klausa WHERE menentukan baris yang mana; jika tidak ditulis, setiap baris akan berubah.
Jika kamu tidak yakin baris mana yang cocok dengan sebuah klausa WHERE, jalankan dulu sebagai SELECT. Halaman UPDATE menunjukkan lebih banyak pola.
DELETE: Menghapus Baris
DELETE FROM menghapus baris yang cocok dengan klausa WHERE-nya. Seperti UPDATE, perintah ini memengaruhi setiap baris jika klausanya tidak ada.
Baris Chen hilang dan baris lainnya tidak tersentuh. Lihat DELETE.
ALTER TABLE dan DROP TABLE: Mengubah atau Menghapus Tabel
ALTER TABLE mengubah tabel yang sudah ada tanpa kehilangan barisnya. DROP TABLE menghapus tabel sepenuhnya.
Kolom baru dimulai dengan NULL di baris yang sudah ada sampai kamu mengisinya. ALTER dan DROP TABLE mencantumkan apa saja yang diizinkan SQLite.
JOIN: Menggabungkan Tabel
JOIN membaca baris dari dua tabel sekaligus, dicocokkan berdasarkan kolom yang dimiliki keduanya.
Boris tidak terdaftar di kursus apa pun, jadi INNER JOIN tidak menyertakannya. LEFT JOIN akan tetap menyertakannya, dengan kolom kursus yang kosong.
GROUP BY: Meringkas Baris
GROUP BY menyatukan baris-baris yang punya nilai sama menjadi satu baris, dan fungsi agregat seperti COUNT atau AVG meringkas setiap kelompok.
Fungsi agregat serta GROUP BY dan HAVING membahasnya lebih jauh.
BEGIN, COMMIT, dan ROLLBACK: Mengelompokkan Perubahan
Transaksi membuat beberapa perubahan dihitung sebagai satu. COMMIT mempertahankan semuanya; ROLLBACK membatalkan semuanya.
Transfernya di-commit dan perubahan kedua dibatalkan, jadi akhirnya saldo Ada 70 dan Boris 80. Transaksi menjelaskan kapan memakainya.
Di Mana SQLite Berbeda
Perintah-perintah di halaman ini adalah SQL standar, dan yang kamu pelajari di sini tetap berlaku di MySQL dan PostgreSQL. Namun, contoh yang bisa dijalankan ditulis untuk SQLite, dan ada tiga detail yang berbeda di database yang lebih besar:
- Melihat daftar tabel. Contoh-contohnya membaca
sqlite_master, tabel skema milik SQLite sendiri. MySQL memakaiSHOW TABLES, dan PostgreSQL memakai viewinformation_schema.tables(atau\dtdipsql). - Id otomatis. Kolom yang dideklarasikan sebagai
INTEGER PRIMARY KEYmenomori baris baru dengan sendirinya di SQLite, dan itulah sebabnya contohINSERTtidak menuliskanid. MySQL butuhAUTO_INCREMENTpada kolomnya, dan PostgreSQL butuh identity column (GENERATED BY DEFAULT AS IDENTITY) atauSERIAL. - Hak akses dan perubahan skema. SQLite tidak punya
GRANTatauREVOKE, karena database SQLite adalah satu file tanpa akun pengguna, danALTER TABLE-nya tidak bisa mengubah tipe sebuah kolom.
Pertanyaan yang sering diajukan
Apa saja perintah dasar SQL?
Lima perintah sudah mencakup sebagian besar pekerjaan sehari-hari: CREATE TABLE untuk mendefinisikan tabel, INSERT untuk menambah baris, SELECT untuk membacanya, UPDATE untuk mengubahnya, dan DELETE untuk menghapusnya. Setelah itu menyusul ALTER TABLE, DROP TABLE, JOIN, GROUP BY, serta perintah transaksi BEGIN, COMMIT, dan ROLLBACK.
Apa perbedaan DDL dan DML?
DDL (data definition language) mengubah struktur database: CREATE, ALTER, dan DROP. DML (data manipulation language) mengubah baris di dalam tabel: INSERT, UPDATE, dan DELETE. SELECT hanya membaca, jadi sering didaftarkan tersendiri sebagai DQL.
Apakah perintah SQL peka huruf besar kecil?
Tidak. SELECT, select, dan Select semuanya berfungsi. Menulis kata kunci dengan huruf kapital adalah konvensi agar kata kunci terlihat menonjol dibandingkan nama tabel dan kolom. Namun, teks di dalam tanda kutip dibandingkan persis, jadi 'Ada' dan 'ada' adalah string yang berbeda di SQLite kecuali kamu meminta perbandingan yang tidak peka huruf besar kecil.
Apakah perintah-perintah ini bekerja sama di MySQL dan PostgreSQL?
Pernyataan-pernyataan ini adalah SQL standar dan artinya sama di ketiganya, jadi yang kamu pelajari di sini tetap berlaku. Namun, contoh yang bisa dijalankan ditulis untuk SQLite: melihat daftar tabel di sini membaca sqlite_master, id otomatis butuh AUTO_INCREMENT di MySQL atau identity column di PostgreSQL, dan SQLite tidak punya GRANT atau REVOKE.