WHERE: Menyaring Baris dengan Kondisi (AND, OR, NOT)

Menyaring data dengan WHERE: operator perbandingan, menggabungkan syarat dengan AND, OR, NOT, dan jebakan prioritas operator yang diselamatkan oleh tanda kurung.

Part 12 dari 38 ± 40 menit Gratis

WHERE = saringan

Tanpa WHERE, SELECT mengembalikan semua baris. Dengan WHERE, hanya baris yang memenuhi kondisi yang lolos, seperti saringan kopi: yang halus lewat, ampasnya tertahan.

SELECT nama, harga
FROM produk
WHERE harga > 15000;

Operator perbandingan

OperatorArtiContoh
=sama dengan (satu tanda =, bukan dua!)kota = 'Jakarta'
<> atau !=tidak sama denganstatus <> 'batal'
> <lebih besar / lebih kecilstok < 20
>= <=lebih besar sama dengan / lebih kecil sama denganharga >= 15000

Penting: perbandingan teks di MySQL tidak peka huruf besar/kecil secara bawaan. WHERE kota = 'jakarta' tetap menemukan 'Jakarta'. (Di PostgreSQL berbeda.)

Menggabungkan syarat: AND, OR, NOT

GabunganLolos jika...
A AND BA dan B sama-sama benar
A OR Bsalah satu (atau keduanya) benar
NOT AA salah
-- minuman yang murah DAN stoknya banyak
SELECT nama, harga, stok FROM produk
WHERE kategori_id = 1 AND harga < 20000 AND stok > 30;

-- snack ATAU makanan
SELECT nama FROM produk WHERE kategori_id = 3 OR kategori_id = 2;

Jebakan prioritas: AND lebih kuat daripada OR

Dalam hitungan, perkalian dikerjakan sebelum penjumlahan. Dalam SQL, AND dikerjakan sebelum OR. Perhatikan dua query yang mirip:

-- (1) tanpa kurung
WHERE kategori_id = 1 OR kategori_id = 2 AND harga < 15000
-- dibaca: kategori 1 (SEMUA)  ATAU  (kategori 2 DAN harga < 15000)

-- (2) dengan kurung
WHERE (kategori_id = 1 OR kategori_id = 2) AND harga < 15000
-- dibaca: (kategori 1 atau 2) YANG harganya < 15000

Hasilnya berbeda! Aturan praktis: jangan ragu pakai tanda kurung setiap kali mencampur AND dan OR. Tanda kurung tidak merugikan apa-apa, dan membuat niatmu jelas bagi orang lain (dan dirimu enam bulan lagi).

Kesalahan umum pemula

  • WHERE kota == 'Jakarta' → salah; di SQL cukup satu =.
  • WHERE harga > 10000 AND < 20000 → salah; tulis lengkap harga > 10000 AND harga < 20000 (atau pakai BETWEEN di bab berikutnya).
  • Lupa kutip pada teks: WHERE kota = Jakarta dianggap nama kolom bernama Jakarta → error "Unknown column".

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