Mengambil Data · Pelajaran 3 dari 9
SELECT dan WHERE
10 menit baca · BelajarCode
Semua contoh di pelajaran ini memakai tabel produk berikut:
SQL
1CREATE TABLE produk (2 id INTEGER PRIMARY KEY,3 nama TEXT,4 kategori TEXT,5 harga INTEGER,6 stok INTEGER7);89INSERT INTO produk (nama, kategori, harga, stok) VALUES10 ('Kopi susu', 'Minuman', 15000, 40),11 ('Teh tarik', 'Minuman', 12000, 25),12 ('Roti bakar', 'Makanan', 18000, 10),13 ('Mi goreng', 'Makanan', 20000, 0),14 ('Air mineral', 'Minuman', 5000, 100),15 ('Pisang goreng', 'Makanan', 10000, NULL);1617SELECT nama, harga FROM produk;nama | harga Kopi susu | 15000 Teh tarik | 12000 Roti bakar | 18000 Mi goreng | 20000 Air mineral | 5000 Pisang goreng | 10000
Menyaring dengan WHERE
SQL
1SELECT nama, harga, stok FROM produk WHERE kategori = 'Makanan' AND harga >= 15000;nama | harga | stok Roti bakar | 18000 | 10 Mi goreng | 20000 | 0
| Operator | Contoh | Artinya |
|---|---|---|
=, <> | stok <> 0 | Sama dengan, tidak sama dengan |
<, <=, >, >= | harga < 10000 | Pembanding |
AND, OR, NOT | kategori = 'Minuman' AND stok > 30 | Menggabungkan syarat |
BETWEEN a AND b | harga BETWEEN 10000 AND 15000 | Di antara a dan b, termasuk keduanya |
IN (...) | nama IN ('Kopi susu', 'Teh tarik') | Salah satu dari daftar |
LIKE | nama LIKE '%goreng' | Pola teks, % berarti teks apa pun |
IS NULL | stok IS NULL | Nilainya kosong |
SQL
1SELECT nama, harga FROM produk WHERE harga BETWEEN 10000 AND 15000;nama | harga Kopi susu | 15000 Teh tarik | 12000 Pisang goreng | 10000
SQL
1SELECT nama, kategori FROM produk WHERE nama LIKE '%goreng';nama | kategori Mi goreng | Makanan Pisang goreng | Makanan
NULL itu istimewa
NULL berarti nilainya tidak diketahui, bukan nol. Perbandingan apa pun dengan NULL, termasuk stok = NULL, tidak bernilai benar. Untuk memeriksa NULL, pakai IS NULL atau IS NOT NULL.
SQL
1SELECT nama, stok FROM produk WHERE stok IS NULL OR stok = 0;nama | stok Mi goreng | 0 Pisang goreng | NULL
Kolom hasil hitungan
SQL
1SELECT nama, harga, harga * 110 / 100 AS harga_dengan_pajak2FROM produk3WHERE kategori = 'Minuman';nama | harga | harga_dengan_pajak Kopi susu | 15000 | 16500 Teh tarik | 12000 | 13200 Air mineral | 5000 | 5500
AS memberi nama kolom hasil hitungan.
Cek pemahaman
Perintah mana yang menampilkan produk yang stoknya belum tercatat?
Latihan
Cari minuman
Tampilkan nama dan stok minuman yang harganya di bawah 15000 dan stoknya lebih dari 20.
Pembahasan
SQL
1SELECT nama, stok FROM produk2WHERE kategori = 'Minuman' AND harga < 15000 AND stok > 20;nama | stok Teh tarik | 25 Air mineral | 100
Kopi susu tidak muncul karena harganya tepat 15000, sedangkan syaratnya di bawah 15000.