Penyaring WHERE: Operator Perbandingan dan Logika
Saring baris dengan =, <>, , AND, OR, NOT dan pahami prioritas operator serta tanda kurung.
Penyaring WHERE: Operator Perbandingan dan Logika adalah pelajaran SQL Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar SQL Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus SQL Academy mencakup 4 pelajaran total.
Peran WHERE
WHERE menyaring baris sebelum pengelompokan atau agregasi. Hanya baris yang predikatnya bernilai TRUE yang dikembalikan.
Operator Perbandingan
Perbandingan standar bekerja pada semua tipe yang dapat dibandingkan:
SELECT * FROM products WHERE price > 100;
SELECT * FROM products WHERE price >= 100;
SELECT * FROM products WHERE price < 50;
SELECT * FROM products WHERE price <= 50;
SELECT * FROM products WHERE category = 'books';
SELECT * FROM products WHERE category <> 'books'; -- != also worksAND, OR, NOT
Gabungkan predikat dengan operator logika:
-- Both true:
SELECT * FROM products
WHERE category = 'books' AND price < 50;
-- Either true:
SELECT * FROM products
WHERE category = 'books' OR category = 'music';
-- Negation:
SELECT * FROM products
WHERE NOT (category = 'books');Prioritas Operator
Prioritas (tinggi ke rendah): NOT → AND → OR. Selalu gunakan tanda kurung pada predikat kompleks agar lebih jelas:
-- Without parens — almost certainly wrong:
SELECT * FROM orders
WHERE status = 'open' OR status = 'pending' AND total > 100;
-- means: status = open OR (status = pending AND total > 100)
-- With parens — clearer:
SELECT * FROM orders
WHERE (status = 'open' OR status = 'pending') AND total > 100;IN dan NOT IN
Singkatan untuk banyak OR:
SELECT * FROM users
WHERE country IN ('US', 'CA', 'GB', 'AU');
-- Equivalent to:
SELECT * FROM users
WHERE country = 'US' OR country = 'CA' OR country = 'GB' OR country = 'AU';BETWEEN
Pemeriksaan rentang inklusif:
SELECT * FROM orders
WHERE total BETWEEN 100 AND 500;
-- Equivalent to: total >= 100 AND total <= 500Filter yang Aman terhadap NULL
Perbandingan dengan NULL menghasilkan NULL (bukan FALSE), dan baris yang berisi NULL dibuang oleh WHERE. Gunakan IS NULL / IS NOT NULL secara eksplisit jika diperlukan:
-- Returns users where deleted_at is unknown:
SELECT * FROM users WHERE deleted_at IS NULL;
-- IS DISTINCT FROM treats NULL as a comparable value:
SELECT * FROM events WHERE status IS DISTINCT FROM 'closed';Kolom BOOLEAN
Kolom BOOLEAN tidak memerlukan perbandingan:
SELECT * FROM tasks WHERE done; -- = TRUE
SELECT * FROM tasks WHERE NOT done; -- = FALSE or NULL
SELECT * FROM tasks WHERE done IS NOT TRUE; -- FALSE or NULL onlyPencocokan Pola dengan LIKE
% cocok dengan string apa pun, sedangkan _ cocok tepat dengan satu karakter:
SELECT * FROM users WHERE email LIKE '%@gmail.com';
SELECT * FROM products WHERE sku LIKE 'A_-___';
-- Case-insensitive in PostgreSQL:
SELECT * FROM users WHERE email ILIKE '%@GMAIL.com';Penyaringan dan Kinerja
Klausa WHERE adalah tempat indeks menunjukkan manfaatnya. Filter kesamaan (=) dan rentang (<, BETWEEN) pada kolom yang diindeks mengubah pemindaian seluruh tabel menjadi pencarian dalam hitungan milidetik.
Urutan Evaluasi
Secara logis, basis data mengevaluasi: FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT. Jadi, WHERE melihat baris mentah; alias kolom dari SELECT belum didefinisikan.
-- This fails — alias not visible in WHERE:
SELECT total * 0.9 AS discounted
FROM orders WHERE discounted > 100; -- ERROR
-- Repeat the expression instead, or wrap in a subquery.Ringkasan
WHERE adalah alat utama Anda untuk memilih baris.
- Operator perbandingan dan logika standar
- Gunakan tanda kurung pada AND/OR campuran
- Gunakan IS NULL — jangan pernah menggunakan = NULL
- WHERE pada kolom yang diindeks berjalan cepat
Pemeriksaan Singkat
Predikat mana yang hanya menyisakan baris dengan usia lebih besar dari atau sama dengan 18 dan negara US?
Belajar SQL dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 46
- Pelajaran
- 183
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Penyaring WHERE: Operator Perbandingan dan Logika” gratis?
Ya — teks lengkap “Penyaring WHERE: Operator Perbandingan dan Logika” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus SQL Academy, upgrade ke CoddyKit PRO. Kursus SQL Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Penyaring WHERE: Operator Perbandingan dan Logika”?
Saring baris dengan =, <>, , AND, OR, NOT dan pahami prioritas operator serta tanda kurung. Kamu berlatih SQL Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai SQL Academy?
Tidak diperlukan pengalaman sebelumnya. SQL Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Penyaring WHERE: Operator Perbandingan dan Logika” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran SQL Academy ini?
Ya. Setiap pelajaran SQL Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Memilih Kolom dan Ekspresi
- Penyaring WHERE: Operator Perbandingan dan Logika
- ORDER BY untuk Satu dan Banyak Kolom
- LIMIT, OFFSET, dan Dasar Paginasi