Menu

Perintah SQL: Daftar Perintah Dasar dan Contohnya

Perintah SQL yang kamu pakai setiap hari, dikelompokkan menurut fungsinya (DDL, DML, DQL, dan TCL), masing-masing dengan contoh yang bisa kamu jalankan di SQLite.

Halaman ini dilengkapi editor yang bisa dijalankan. Edit, jalankan, dan lihat output-nya seketika.

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.

PerintahKelompokFungsinya
CREATE TABLEDDLMendefinisikan tabel baru beserta kolom-kolomnya
ALTER TABLEDDLMenambah atau mengganti nama kolom, atau mengganti nama tabel
DROP TABLEDDLMenghapus tabel beserta semua barisnya
INSERTDMLMenambah baris baru
UPDATEDMLMengubah nilai di baris yang sudah ada
DELETEDMLMenghapus baris
SELECTDQLMembaca baris, difilter dengan WHERE dan diurutkan dengan ORDER BY
BEGIN, COMMIT, ROLLBACKTCLMengelompokkan 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 memakai SHOW TABLES, dan PostgreSQL memakai view information_schema.tables (atau \dt di psql).
  • Id otomatis. Kolom yang dideklarasikan sebagai INTEGER PRIMARY KEY menomori baris baru dengan sendirinya di SQLite, dan itulah sebabnya contoh INSERT tidak menuliskan id. MySQL butuh AUTO_INCREMENT pada kolomnya, dan PostgreSQL butuh identity column (GENERATED BY DEFAULT AS IDENTITY) atau SERIAL.
  • Hak akses dan perubahan skema. SQLite tidak punya GRANT atau REVOKE, karena database SQLite adalah satu file tanpa akun pengguna, dan ALTER 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.

Ilustrasi bahasa pemrograman di Coddy

Belajar coding dengan Coddy

Mulai