- Temukan perintah SQL penting dan contoh praktis untuk query, manajemen, dan keamanan di database.
- Pelajari cara menggunakan SELECT, WHERE, JOIN, GROUP BY, fungsi agregat, dan tampilan, menggunakan sintaksis dan kasus penggunaan di dunia nyata.
- Temui Trik lanjutan, manajemen izin, dan FAQ untuk menguasai SQL di lingkungan profesional.
Structured Query Language (SQL) adalah salah satu alat yang, setelah dikuasai, akan menjadi sekutu terbaik Anda untuk berinteraksi dengan basis data relasional apa pun. Jika Anda pernah bertanya-tanya bagaimana cara mengakses, memodifikasi, menghapus, atau menganalisis sejumlah besar data dengan mudah dan efisien, SQL adalah jawaban yang Anda cari. Mempelajari cara menggunakan perintah SQL dengan benar akan membuat perbedaan antara menjadi pengguna biasa dan menjadi ahli sejati dalam manajemen dan analisis data.
Dalam artikel ini, saya telah menyusun daftar lengkap perintah SQL utama, disertai penjelasan yang jelas dan contoh praktis, yang mencakup semuanya mulai dari dasar hingga kueri yang lebih lanjut. Saya juga akan menunjukkan trik dan detail yang sering diabaikan dalam artikel yang lebih dangkal, sehingga Anda dapat memaksimalkan basis data Anda, baik Anda baru memulai atau ingin meningkatkan keterampilan Anda. Bersiaplah untuk menyelami dunia SQL dan temukan bagaimana bahasa ini dapat mengubah cara Anda bekerja dengan informasi.
Apa itu SQL dan mengapa itu masih penting?
SQL , atau Structured Query Language, adalah bahasa pemrograman yang dirancang khusus untuk mengelola dan memanipulasi basis data relasional. Meskipun dikembangkan pada tahun 70-an, SQL tetap menjadi solusi standar untuk berkomunikasi dengan basis data seperti MySQL, PostgreSQL, SQL Server, MariaDB, dan Oracle Database, di antara yang lainnya.
Alasan mengapa SQL tetap relevan dalam jangka panjang sangat sederhana: SQL memungkinkan segala hal mulai dari tugas dasar seperti melakukan kueri data hingga operasi tingkat lanjut seperti menggabungkan tabel yang kompleks, membuat struktur, memperbarui catatan secara massal, dan menentukan izin . Selain itu, sintaksnya cukup sederhana sehingga siapa pun dapat dengan cepat memahaminya, namun cukup ampuh untuk menyelesaikan masalah bisnis yang kompleks.
Para profesional di berbagai bidang—mulai dari pengembang, analis, dan administrator basis data hingga ilmuwan data—mengandalkan SQL untuk memproses, membersihkan, dan menganalisis data penting bagi proyek dan organisasi mereka.
Kategori perintah SQL: DQL, DML, DDL, dan DCL
Sebelum kita membahas contoh-contohnya, ada baiknya diingat bahwa perintah SQL dapat dikelompokkan ke dalam berbagai kategori berdasarkan fungsinya:
- DQL (Bahasa Kueri Data): Ini adalah kalimat untuk menanyakan data, seperti MEMILIH.
- DML (Bahasa Manipulasi Data): Mereka memanipulasi catatan, dengan perintah seperti MEMASUKKAN, UPDATE y DELETE.
- DDL (Bahasa Definisi Data): Mereka mengelola struktur database, misalnya, MEMBUAT, MENGUBAH, DROP y MEMOTONG.
- DCL (Bahasa Kontrol Data): Mereka mengontrol izin dan akses, menggunakan GRANT y MENCABUT.
Setiap jenis perintah memiliki fungsi penting dalam manajemen basis data harian. Penting untuk mengetahui perintah mana yang harus digunakan dalam setiap situasi untuk menghindari kesalahan atau bahkan bencana dalam manajemen data.
Perintah SQL utama: Dasar-dasar dan contoh praktis
Menguasai perintah-perintah SQL dasar membuka peluang untuk hampir semua tugas manajemen atau analisis data. Di bawah ini, saya akan menjelaskan perintah-perintah yang paling relevan, cara kerjanya, dan memberikan contoh penggunaan untuk membantu Anda mempelajarinya.
SELECT: Raja dari semua kueri
Perintah SELECT adalah landasan dari sebagian besar operasi SQL. Perintah ini memungkinkan Anda untuk mengambil data yang tersimpan dalam satu atau lebih tabel.
Sintaksis umum:
PILIH kolom1, kolom2, ... DARI nama_tabel;
Untuk mendapatkan semua kolom dalam tabel, cukup gunakan tanda bintang:
PILIH * DARI karyawan;
Jika Anda ingin memfilter data tertentu, Anda dapat menambahkan kondisi:
PILIH nama, umur DARI karyawan DI MANA umur > 30;
Berkat perintah SELECT, Anda dapat mengambil apa pun mulai dari nilai tunggal hingga kumpulan data yang kompleks, menerapkan fungsi agregasi, menghitung kolom turunan, dan menyiapkan informasi untuk laporan atau visualisasi.
DI MANA: Memfilter hasil secara tepat
Klausul WHERE memungkinkan Anda menentukan kondisi untuk memilih hanya baris-baris yang memenuhi kriteria tertentu. Ini adalah filter mendasar untuk setiap kueri.
Sintaks dasar:
PILIH * DARI produk DI MANA harga < 100;
Anda dapat menggabungkan kondisi menggunakan operator logika seperti AND , OR , dan NOT , serta operator perbandingan ( =, <, >, <=, >=, <> ).
Misalnya, untuk merekrut karyawan penjualan di bawah usia 30 tahun:
PILIH * DARI karyawan DI MANA departemen = 'Penjualan' DAN usia < 30;

INSERT: Menambahkan catatan baru
Dengan perintah INSERT, Anda dapat menambahkan baris baru ke dalam tabel. Ini sangat penting untuk menjaga agar basis data Anda selalu diperbarui dengan informasi terbaru.
Sintaksis umum:
MASUKKAN KE produk (nama, harga) NILAI ('Keyboard', 29.99);
Jika Anda ingin menambahkan beberapa rekaman dalam satu kueri, Anda juga dapat melakukannya:
MASUKKAN KE produk (nama, harga) NILAI ('Mouse', 15.50), ('Monitor', 120.00);
Ingatlah bahwa jika Anda menghilangkan daftar kolom, Anda harus memberikan nilai untuk setiap bidang dalam tabel, dengan memperhatikan urutannya.
PEMBARUAN: Memodifikasi data yang ada
Perintah UPDATE memungkinkan Anda untuk mengubah nilai satu atau lebih kolom dalam catatan yang memenuhi kondisi tertentu. Perintah ini berguna untuk memperbaiki kesalahan atau memperbarui informasi.
Sintaksis:
UPDATE karyawan SET gaji = gaji * 1.05 WHERE departemen = 'Pemasaran';
Dalam contoh ini, semua karyawan bagian Pemasaran akan mengalami kenaikan gaji sebesar 5%. Sangat penting untuk menggunakan klausa WHERE setiap kali Anda melakukan pembaruan , kecuali jika Anda benar-benar ingin memodifikasi seluruh tabel.
HAPUS: Menghapus data
Untuk menghapus data, gunakan perintah DELETE beserta suatu kondisi, sehingga menghindari penghapusan seluruh data dari tabel secara tidak sengaja.
Contoh:
HAPUS DARI produk DI MANA id_producto = 10;
Jika Anda menghilangkan klausa WHERE, semua baris dalam tabel akan dihapus. Perhatian!
ORDER BY: Mengorganisasikan hasil
Klausul ORDER BY digunakan untuk mengurutkan hasil kueri berdasarkan satu atau lebih kolom. Secara default, urutannya adalah menaik (ascending), tetapi Anda dapat menentukan ASC atau DESC sesuai kebutuhan.
PILIH * DARI karyawan ORDER BERDASARKAN gaji DESC;
Anda dapat menggabungkan beberapa kolom dalam pengurutan:
PILIH * DARI produk URUTAN BERDASARKAN kategori ASC, harga TURUN;
Fungsi GROUP BY dan agregat: SUM, AVG, MIN, MAX, COUNT
GROUP BY memungkinkan Anda untuk mengelompokkan hasil berdasarkan satu atau lebih kolom, yang sangat berguna jika digunakan bersamaan dengan fungsi-fungsi seperti SUM() (jumlah), AVG() (rata-rata), MIN (minimum), MAX (maksimum), dan COUNT (jumlah).
Misalnya, untuk mengetahui berapa banyak produk yang ada di setiap kategori:
PILIH kategori, HITUNG(*) DARI produk KELOMPOKKAN BERDASARKAN kategori;
Atau untuk menghitung total tagihan untuk setiap pelanggan:
PILIH customer_id, SUM(jumlah) DARI penjualan GROUP BERDASARKAN customer_id;
Anda dapat memfilter grup hasil menggunakan klausa HAVING :
PILIH departemen, AVG(gaji) DARI karyawan KELOMPOKKAN BERDASARKAN departemen YANG MEMILIKI AVG(gaji) > 2000;
LIMIT dan OFFSET: Membatasi jumlah hasil
Saat tabel Anda memiliki ribuan data, LIMIT sangat penting untuk hanya menampilkan sebagian dari hasilnya, sehingga meningkatkan kinerja dan keterbacaan.
PILIH * DARI produk BATAS 10;
Dengan OFFSET, Anda dapat melewati sejumlah baris, berguna untuk paginasi:
PILIH * DARI produk BATAS 10 OFFSET 20;
BETWEEN, IN dan LIKE: Kondisi WHERE Lanjutan
Kata kunci ini memperluas kemungkinan penyaringan:
- ANTARA: Pilih nilai dalam suatu rentang.
PILIH * DARI karyawan DI MANA gaji ANTARA 1000 DAN 3000;
- IN: Mencari beberapa nilai.
PILIH * DARI produk DI MANA kategori DI ('Komputer', 'Elektronik'); - SUKA: Carilah pola dalam teks.
PILIH * DARI pelanggan DI MANA nama SEPERTI 'A%';
Karakter wildcard seperti % (sejumlah karakter apa pun) dan _ (satu karakter) juga dapat digunakan untuk lebih menyesuaikan pencarian LIKE.
JOIN: Menyilangkan informasi antar tabel
Salah satu kekuatan besar SQL adalah kemampuannya untuk menggabungkan data dari tabel yang berbeda menggunakan JOIN . Yang paling umum adalah:
- GABUNG DALAM: Mengembalikan baris yang cocok pada kedua tabel.
- KIRI GABUNG: Mengembalikan semua baris dari tabel kiri dan semua kecocokan dari kanan (mengisi dengan NULL jika tidak ada kecocokan).
- GABUNG BENAR: Mengembalikan semua baris dari tabel kanan dan baris yang cocok dari kiri.
- GABUNG LUAR LENGKAP: Mengembalikan semua baris dari kedua tabel (diisi dengan NULL jika tidak ada yang cocok).
Contoh INNER JOIN:
PILIH orders.id, nama pelanggan DARI orders INNER JOIN customers PADA orders.customer_id = customers.id;
KIRI GABUNG:
PILIH nama_karyawan, jumlah.penjualan DARI karyawan KIRI GABUNG penjualan PADA karyawan.id = penjualan.id_karyawan;
ALTER, CREATE dan DROP: Memodifikasi struktur database
Selain memanipulasi data, SQL memungkinkan Anda untuk menentukan dan memodifikasi struktur tabel dan objek database lainnya:
- MEMBUAT: Untuk membuat objek baru (tabel, tampilan, indeks, pengguna…).
BUAT TABEL produk (id INT PRIMARY KEY, nama VARCHAR(100), harga DECIMAL(8,2));
- MENGUBAH: Untuk mengubah struktur suatu objek yang ada.
ALTER TABLE produk ADD deskripsi VARCHAR(255);
ALTER TABLE produk ALTER COLUMN harga SET NOT NULL;
- MENJATUHKAN: Untuk menghapus objek dari basis data.
produk DROP TABLE;
DROP PENGGUNA contoh_pengguna CASCADE;
Tampilan (VIEW): Kueri yang dapat digunakan kembali dan pemfilteran tingkat lanjut
View adalah objek virtual yang merepresentasikan kueri yang tersimpan. Fungsinya seperti tabel, tetapi view tidak menyimpan data; view hanya menunjuk ke informasi di tabel lain. View berguna untuk menyederhanakan kueri yang kompleks, memusatkan filter, dan mempermudah akses ke informasi tertentu.
BUAT TAMPILAN active_employees SEBAGAI PILIH * DARI karyawan DI MANA active = 1;
Anda dapat mengkueri tampilan seperti halnya tabel:
PILIH * DARI karyawan_aktif;
Tampilan ideal untuk mengelola izin dan hanya menampilkan data yang relevan kepada pengguna tertentu.
Fungsi agregat dan perhitungan pada kolom
SQL memungkinkan Anda untuk bekerja dengan fungsi agregasi dan operator aritmatika untuk melakukan perhitungan pada data:
- JUMLAH(): Jumlah total kolom.
- rata-rata(): Rata-rata aritmatika.
- MIN() dan MAX(): Minimum dan maksimum.
- MENGHITUNG(): Jumlah rekaman.
Misalnya, jika Anda menginginkan jumlah karyawan per departemen:
PILIH departemen, HITUNG(*) DARI karyawan KELOMPOKKAN BERDASARKAN departemen;
Atau gaji tertinggi berdasarkan departemen:
PILIH departemen, MAX(gaji) DARI karyawan GROUP BERDASARKAN departemen;
Anda bahkan dapat membuat kolom terhitung langsung dalam kueri:
PILIH nama, gaji * 0.95 AS gaji_bersih DARI karyawan;
Menggunakan alias (AS) untuk tabel dan kolom
Dalam kueri, Anda dapat memberikan nama sementara pada kolom dan tabel menggunakan perintah AS . Ini memudahkan pembacaan hasil dan penulisan kueri yang kompleks.
Sebagai contoh:
PILIH e.nama SEBAGAI karyawan, d.nama SEBAGAI departemen DARI karyawan SEBAGAI e GABUNG departemen SEBAGAI d PADA e.id_departemen = d.id;
Dengan cara ini, hasilnya akan menunjukkan kolom dengan nama khusus. Penggunaan alias sangat berguna saat melakukan JOIN atau saat kolom memiliki nama yang panjang atau tidak jelas.
Contoh Query SQL Tingkat Lanjut: Memecahkan Kasus Dunia Nyata
Untuk menjadi mandiri dalam SQL, Anda perlu menghadapi tantangan dunia nyata. Di bawah ini adalah contoh yang diperluas yang diambil dari kasus praktis yang akan membantu memperkuat pengetahuan Anda.
Tanyakan semua karyawan di suatu departemen dan total penjualan mereka
PILIH e.id, e.nama, SUM(v.jumlah) SEBAGAI total_penjualan DARI karyawan e GABUNG penjualan v PADA e.id = v.id_karyawan DI MANA e.departemen = 'Penjualan' KELOMPOKKAN BERDASARKAN e.id, e.nama;
Contoh ini menunjukkan cara menggabungkan tabel, menerapkan fungsi agregat, dan memfilter hasil.
Perhitungan gaji rata-rata dan maksimum berdasarkan departemen
PILIH departemen, AVG(gaji) AS gaji_rata-rata, MAX(gaji) AS gaji_maksimum DARI karyawan KELOMPOKKAN BERDASARKAN departemen;
Dengan cara ini, Anda dapat menganalisis distribusi gaji dan mengidentifikasi ketidaksetaraan atau area dengan insentif yang lebih besar.
Hitung produk berdasarkan kisaran harga menggunakan CASE
PILIH KASUS KETIKA harga < 50 MAKA 'Murah' KETIKA harga < 150 MAKA 'Sedang' LAINNYA 'Mahal' AKHIR SEBAGAI rentang_harga, HITUNG(*) SEBAGAI jumlah DARI produk KELOMPOKKAN BERDASARKAN rentang_harga;
Dengan menggunakan CASE, Anda dapat membuat kategori khusus di dalam kueri.
Contoh kueri untuk menemukan rekaman duplikat
PILIH nama, HITUNG(*) DARI pelanggan KELOMPOKKAN BERDASARKAN nama YANG MEMILIKI HITUNG(*) > 1;
Ini membantu Anda menjaga basis data Anda bersih dan bebas dari data yang berlebihan.
Mengidentifikasi gaji tertinggi ke-n (subquery)
PILIH 1 gaji TERATAS DARI ( PILIH N gaji TERATAS YANG BERBEDA DARI karyawan URUTKAN BERDASARKAN gaji TURUNKAN ) URUTKAN BERDASARKAN gaji NAIK;
Sempurna untuk menjawab pertanyaan dalam wawancara teknis atau menghasilkan laporan tingkat lanjut.
Hapus catatan lama secara otomatis
HAPUS DARI log DI MANA tanggal < SEKARANG() - INTERVAL 6 BULAN;
Ideal untuk basis data produksi di mana Anda perlu mengontrol ukuran tabel.
Tips dan trik yang berguna dalam SQL
Menguasai SQL bukan hanya tentang mengetahui cara menulis kueri dasar. Berikut beberapa kiat untuk membantu Anda memanfaatkan bahasa ini sebaik mungkin:
- Selalu gunakan WHERE di UPDATE dan DELETE untuk mencegah modifikasi atau penghapusan massal yang tidak disengaja.
- Letakkan indeks pada kolom yang paling sering dikunjungi untuk mempercepat pencarian dan penggabungan.
- Lebih baik gunakan JOIN eksplisit daripada WHERE untuk menggabungkan tabel: memfasilitasi pemeliharaan dan keterbacaan.
- Gunakan fungsi agregat dan GROUP BY untuk pelaporan dan analisis otomatis tanpa bergantung pada spreadsheet eksternal.
- Uji pada database uji sebelum membuat perubahan besar.
- Kontrol izin dengan GRANT dan REVOKE untuk memastikan keamanan data Anda.
- Manfaatkan pemandangan (VIEW) untuk menyederhanakan akses ke informasi yang kompleks dan memusatkan logika bisnis.
- Jangan terlalu sering menggunakan SELECT *, karena Anda mungkin memasukkan lebih banyak data dari yang diperlukan dan memperlambat sistem.
- Komentar pada kueri yang rumit untuk memudahkan pemeliharaan di masa mendatang.
Pertanyaan yang sering diajukan tentang perintah SQL dalam wawancara dan kasus kehidupan nyata
Menguasai SQL sangat penting untuk unggul dalam wawancara teknis dan memecahkan masalah sehari-hari. Berikut ini beberapa pertanyaan dan jawaban umum untuk membantu Anda mempersiapkan diri:
- Apa itu INNER JOIN?
Ini adalah gabungan default dalam SQL; ia mengembalikan baris yang cocok dengan kedua tabel. Contoh:PILIH * DARI A GABUNG DALAM B PADA A.id = B.a_id;
- Apa kegunaan LEFT JOIN?
Mengembalikan semua baris dari tabel kiri dan semua kecocokan dari tabel kanan. Contoh:PILIH * DARI karyawan KIRI GABUNG penjualan PADA karyawan.id = penjualan.karyawan_id;
- Apa perbedaan antara DROP dan DELETE?
DELETE menghapus baris dari tabel, sementara DROP sepenuhnya menghapus objek (tabel, tampilan, pengguna) dari database. - Bisakah Anda melakukan rollback setelah ALTER?
Tidak, karena ALTER adalah DDL dan banyak sistem yang melakukan commit secara otomatis. Penting untuk memastikannya sebelum menggunakannya. - Apa itu pseudo-kolom?
Mereka adalah kolom virtual yang dihasilkan oleh sistem, seperti ROWID, USER atau CURRVAL di Oracle. - Bagaimana cara membuat tampilan?
BUAT TAMPILAN view_employees SEBAGAI PILIH nama, gaji DARI karyawan;
- Bagaimana cara memberikan izin?
BERIKAN PILIHAN PADA inventaris KEPADA ana, rita;
- Bagaimana cara menghapus pengguna beserta datanya?
DROP PENGGUNA pengguna CASCADE;
Ekspresi reguler dan operator khusus dalam SQL
Bagian SQL yang kurang dikenal tetapi sangat hebat adalah kemampuan untuk mencari pola menggunakan ekspresi reguler dan operator tingkat lanjut. Misalnya:
- %: Mewakili string apa pun dengan panjang apa pun (digunakan dalam LIKE).
- _ : Mewakili satu karakter (juga dalam LIKE).
- Bahasa Indonesia: Pergantian, mencari satu hal atau lainnya.
- *: Pengulangan karakter nol kali atau lebih.
Manajemen Lanjutan: Peran, Izin, dan Keamanan
Mengelola basis data melibatkan lebih dari sekadar melakukan kueri dan memodifikasi data. Sangat penting untuk mengontrol siapa yang dapat mengakses, memodifikasi, atau menghapus informasi menggunakan perintah seperti GRANT , REVOKE , atau manajemen ROLE tingkat lanjut.
BUAT PERAN manajer;
BERIKAN PILIHAN, MASUKKAN, PERBARUI PADA karyawan KEPADA manajer;
Manajer HIBAH UNTUK juan, maria;
Hal ini memungkinkan Anda untuk memusatkan keamanan dan menyederhanakan manajemen izin di lingkungan yang besar. Untuk informasi lebih lanjut tentang manajemen izin, lihat artikel kami tentang otomatisasi dan administrasi.
Penulis yang bersemangat tentang dunia byte dan teknologi secara umum. Saya suka berbagi ilmu melalui tulisan, dan itulah yang akan saya lakukan di blog ini, menunjukkan kepada Anda semua hal paling menarik tentang gadget, perangkat lunak, perangkat keras, tren teknologi, dan banyak lagi. Tujuan saya adalah membantu Anda menavigasi dunia digital dengan cara yang sederhana dan menghibur.