WHERE: Menyaring Data (Perbandingan, AND/OR, IN, BETWEEN, NULL)

Memfilter baris dengan WHERE: operator perbandingan, AND/OR/NOT, IN, BETWEEN, dan cara benar menangani NULL dengan IS NULL.

Part 7 dari 25 ± 35 menit Gratis

Analogi: WHERE itu seperti saringan kopi. Seluruh air dan ampas (semua baris) dituang ke atas, tetapi hanya yang memenuhi syarat yang menetes ke gelas. AND berarti saringan dobel (harus lolos keduanya), OR berarti salah satu lolos sudah cukup, dan NULL seperti air yang belum jelas wujudnya: tidak bisa dibandingkan dengan =.

WHERE = penyaring baris

Tanpa WHERE, SELECT mengambil semua baris. Dengan WHERE, hanya baris yang memenuhi syarat yang lolos.

SELECT judul, harga FROM buku WHERE harga < 50000;

Analogi: WHERE itu seperti saringan teh. Daun (baris yang tidak cocok) tertahan, hanya air teh (baris yang cocok) yang lewat.

Operator perbandingan

OperatorArtiContoh
=sama dengankategori_id = 1
<> atau !=tidak sama denganstatus <> 'batal'
< > <= >=kurang/lebih daristok >= 20

Di SQL, "sama dengan" cukup satu tanda sama dengan (=), bukan dua seperti di banyak bahasa pemrograman. Dan teks di PostgreSQL peka huruf besar-kecil: 'novel' berbeda dari 'Novel'.

Menggabungkan syarat: AND, OR, NOT

SELECT judul FROM buku WHERE kategori_id = 1 AND harga < 90000;   -- keduanya harus benar
SELECT judul FROM buku WHERE stok = 0 OR harga > 100000;          -- salah satu cukup
SELECT judul FROM buku WHERE NOT (kategori_id = 1);               -- kebalikan

Bila AND dan OR dicampur, pakai tanda kurung agar maksudnya jelas (AND dihitung lebih dulu daripada OR).

IN dan BETWEEN

SELECT judul FROM buku WHERE kategori_id IN (2, 5);              -- cocok dengan salah satu daftar
SELECT judul FROM buku WHERE tahun BETWEEN 2010 AND 2020;        -- rentang, batas ikut termasuk

NULL butuh perlakuan khusus

NULL berarti "tidak diketahui", sehingga kategori_id = NULL hasilnya selalu "tidak diketahui" (bukan benar), dan tidak ada baris yang lolos. Gunakan IS NULL / IS NOT NULL:

SELECT judul FROM buku WHERE kategori_id IS NULL;       -- buku tanpa kategori
SELECT nama FROM pelanggan WHERE email IS NOT NULL;     -- pelanggan yang punya email

Kesalahan klasik pemula: menulis WHERE kolom = NULL. Query itu tidak error tetapi selalu menghasilkan 0 baris. Ingat: IS NULL.

Kasus nyata: mencari buku yang perlu diisi ulang

Admin gudang ingin tahu buku murah yang stoknya menipis agar bisa dipesan ulang:

SELECT judul, stok, harga
FROM buku
WHERE stok < 20
  AND harga BETWEEN 20000 AND 100000
  AND kategori_id IS NOT NULL;

Satu query ini menggantikan pekerjaan memelototi ratusan baris di Excel.

Kesalahan yang sering terjadi

  • Menulis kolom = NULL. Hasilnya tidak pernah benar; gunakan IS NULL / IS NOT NULL.
  • Mencampur AND dan OR tanpa tanda kurung. AND dihitung lebih dulu, hasilnya sering tidak sesuai niat.
  • Mengira BETWEEN 10 AND 20 tidak mencakup 10 dan 20. Kedua ujung termasuk.

Praktikkan langsung, gratis

Tulis dan jalankan kode langsung di browser, dapatkan penilaian otomatis. Daftar gratis kapan saja untuk menyimpan progres dan meraih sertifikat.

Coba latihan sekarang, tanpa daftar
Bagikan: WhatsApp Facebook LinkedIn X