Panduan Lengkap dan Contoh Perintah SQL Terperinci: Dari Dasar hingga Query Lanjutan

Pembaharuan Terakhir: 16/06/2025
penulis: Isaac
  • 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.

Perintah SQL dalam database

Bahasa Kueri Terstruktur (SQL) adalah salah satu alat yang, setelah Anda menguasainya, menjadi sekutu terbaik Anda untuk berinteraksi dengan basis data relasional apa pun. Jika Anda pernah bertanya-tanya bagaimana cara mengakses, mengubah, menghapus, atau menganalisis data dalam jumlah besar dengan mudah dan efisien, SQL adalah jawaban yang Anda cari. Belajar menggunakan perintah SQL dengan benar menandai perbedaan antara menjadi pengguna dasar dan menjadi ahli sejati dalam manajemen dan analisis data.

Dalam artikel ini saya akan memberikan Anda kompilasi komprehensif dari perintah SQL utama disertai dengan penjelasan yang jelas dan contoh praktis, yang mencakup segala hal mulai dari dasar hingga kueri yang lebih canggih. Saya juga akan menunjukkan trik dan detail yang sering luput dari perhatian dalam artikel yang lebih dangkal, sehingga Anda dapat memperoleh manfaat maksimal dari basis data Anda, baik Anda baru memulai atau ingin meningkatkan pengetahuan 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 Bahasa Kueri Terstruktur, adalah bahasa kueri pemrograman Dirancang khusus untuk mengelola dan memanipulasi basis data relasional. Meskipun dikembangkan pada tahun 70-an, solusi ini tetap menjadi solusi standar untuk berkomunikasi dengan basis data seperti MySQL, PostgreSQL, SQL Server, MariaDB, dan Oracle Database, antara lain.

Alasan umur panjangnya sederhana: SQL memungkinkan segalanya, mulai dari tugas dasar seperti mengkueri data hingga operasi tingkat lanjut seperti menggabungkan tabel kompleks, membuat struktur, memperbarui rekaman secara massal, atau menentukan izin.Ditambah lagi, sintaksnya cukup sederhana sehingga siapa pun dapat dengan cepat memahaminya, namun cukup canggih untuk memecahkan masalah bisnis yang rumit.

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 beralih ke contoh, perlu diingat bahwa Perintah SQL dapat dikelompokkan ke dalam beberapa kategori sesuai 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 MEMILIH Ini adalah fondasi yang menjadi dasar sebagian besar operasi dalam SQL. Ini memungkinkan Anda untuk mengambil data yang tersimpan dalam satu atau beberapa 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;

Melalui MEMILIH Anda dapat mengambil semuanya mulai dari nilai tunggal hingga kumpulan data kompleks, menerapkan fungsi agregat, menghitung kolom turunan, dan menyiapkan data untuk laporan atau visualisasi.

  Kueri Lanjutan di Access: Jenis, Penggunaan, dan Contoh Rinci

DI MANA: Memfilter hasil secara tepat

Klausa MANA Fitur ini memungkinkan Anda menentukan kondisi untuk memilih hanya baris yang memenuhi kriteria tertentu. Ini adalah filter mendasar untuk kueri apa pun.

Sintaks dasar:

PILIH * DARI produk DI MANA harga < 100;

Anda dapat menggabungkan kondisi menggunakan operator logika seperti DAN, OR y JANGAN, serta operator perbandingan (=, <, >, <=, >=, <>).

Misalnya, untuk merekrut karyawan penjualan di bawah usia 30 tahun:

PILIH * DARI karyawan DI MANA departemen = 'Penjualan' DAN usia < 30;

Contoh kueri SQL

INSERT: Menambahkan catatan baru

dengan MEMASUKKAN Anda dapat menambahkan baris baru ke tabel. Hal ini penting untuk mengisi basis data Anda dengan informasi baru.

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 mengubah nilai satu atau beberapa bidang dalam catatan yang memenuhi kondisi tertentu. Ini berguna untuk mengoreksi kesalahan atau memperbarui informasi.

Sintaksis:

UPDATE karyawan SET gaji = gaji * 1.05 WHERE departemen = 'Pemasaran';

Dalam contoh ini, semua karyawan Pemasaran akan mendapatkan kenaikan gaji sebesar 5%. Ini sangat penting. gunakan WHERE setiap kali Anda memperbarui, kecuali jika Anda benar-benar ingin mengubah keseluruhan tabel.

HAPUS: Menghapus data

Untuk menghapus rekaman gunakan DELETE di samping suatu kondisi, sehingga menghindari penghapusan semua 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

Klausa DIPESAN OLEH digunakan untuk mengurutkan hasil query menurut satu atau beberapa kolom. Secara default, urutannya adalah ascending, tetapi Anda dapat menentukan ASC o DESC sesuai kebutuhan Anda.

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

KELOMPOK OLEH memungkinkan Anda mengelompokkan hasil menurut satu atau beberapa kolom, yang sangat berguna jika dipadukan dengan fungsi seperti JUMLAH() (tambahan), AVG () (rata-rata), MIN (minimum), MAX (maksimum) dan COUNT (perhitungan).

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 yang dihasilkan menggunakan klausa MEMILIKI:

PILIH departemen, AVG(gaji) DARI karyawan KELOMPOKKAN BERDASARKAN departemen YANG MEMILIKI AVG(gaji) > 2000;

LIMIT dan OFFSET: Membatasi jumlah hasil

Ketika tabel Anda memiliki ribuan rekaman, MEMBATASI Sangat penting untuk hanya menampilkan sebagian hasil, untuk meningkatkan kinerja dan keterbacaan.

PILIH * DARI produk BATAS 10;

dengan OFFSET Anda dapat melewati sejumlah baris, berguna untuk pagination:

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 juga dapat digunakan seperti % (sejumlah karakter) dan _ (karakter tunggal) untuk menyesuaikan pencarian lebih lanjut dengan LIKE.

JOIN: Menyilangkan informasi antar tabel

Salah satu kekuatan besar SQL adalah kemampuan untuk menggabungkan data dari tabel yang berbeda menggunakan BERGABUNG. 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).
  Cara Menggunakan Menu di Netbeans untuk Mendesain Swing GUI

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

itu dilihat Objek-objek tersebut adalah objek virtual yang mewakili kueri yang tersimpan. Objek-objek tersebut berfungsi seperti tabel, tetapi tidak menyimpan data; objek-objek tersebut hanya menunjuk ke informasi di tabel-tabel lain. Objek-objek tersebut berguna untuk menyederhanakan kueri yang rumit, memusatkan filter, dan memfasilitasi 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 bekerja dengan fungsi tambahan 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 menetapkan nama sementara ke kolom dan tabel menggunakan perintah ASHal ini memudahkan untuk membaca hasil dan menulis pertanyaan yang rumit.

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 nyata. Berikut beberapa kiatnya: contoh yang diperluas diekstraksi dari kasus-kasus praktis yang membantu mengkonsolidasikan pengetahuan.

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;

Gunakan CASE memungkinkan Anda membuat kategori khusus 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.

  Cara mengekspor dan mengimpor data secara efisien di MATLAB

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 tidak hanya berarti mengetahui cara menulis query dasar. Berikut ini beberapa Tips untuk memanfaatkan bahasa secara maksimal:

  • 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 database tidak terbatas pada permintaan dan modifikasi data. Sangat penting untuk mengontrol siapa yang dapat mengakses, memodifikasi, atau menghapus informasi menggunakan perintah seperti GRANT, MENCABUT, atau manajemen lanjutan PERAN:

BUAT PERAN manajer;
BERIKAN PILIHAN, MASUKKAN, PERBARUI PADA karyawan KEPADA manajer;
Manajer HIBAH UNTUK juan, maria;

Dengan cara ini Anda dapat memusatkan keamanan dan memfasilitasi manajemen izin di lingkungan yang besar. Jika Anda ingin mempelajari lebih dalam tentang manajemen izin, lihat artikel kami di otomatisasi dan administrasi.

Apa itu file .ETL di Windows 2?
Artikel terkait:
File .ETL di Windows: Apa Itu, Kegunaannya, dan Cara Menganalisisnya