SQL Menyaring Baris berdasarkan Kondisi/ Batasan
SELECT
digunakan untuk memilih kolom tertentu dari sebuah tabel. Namun, bagaimana jika tabel tersebut berisi ratusan juta baris data? Membaca seluruh baris akan sangat tidak efisien, bahkan mungkin mustahil. Baris tertentu disaring agar tidak ditampilkan dengan menggunakan klausa WHERE
dalam query SQL. Klausa ini diterapkan ke setiap baris data dengan memeriksa nilai kolom tertentu, menentukan apakah baris tersebut harus dimasukkan dalam hasil atau tidak.
Contoh Query dengan Saringan WHERE
SELECT kolom, kolom_lain, …
FROM nama_tabel
WHERE kondisi
AND/OR kondisi_lain
AND/OR …;
Klausa yang lebih kompleks disusun dengan menggabungkan beberapa kata kunci logika AND
atau OR
(misalnya, tahun >= 2000 AND jenis = "Sastra"
). Berikut ini adalah beberapa operator berguna yang dapat digunakan untuk data numerik (misalnya, bilangan bulat atau titik mengambang):
Operator | Jenis Kondisi | Contoh SQL |
---|---|---|
=, !=, <, <=, >, >= | Operator numerik | kolom != 5 |
BETWEEN … AND … | Angka berada dalam rentang dua nilai | kolom BETWEEN 3.3 AND 5.5 |
NOT BETWEEN … AND … | Angka tidak berada dalam rentang | kolom NOT BETWEEN 3 AND 5 |
IN (…) | Angka ada dalam daftar | kolom IN (3, 5, 7) |
NOT IN (…) | Angka tidak ada dalam daftar | kolom NOT IN (3, 5, 7) |
Dengan menuliskan klausa untuk membatasi hasil baris yang ditampilkan, query berjalan lebih cepat karena jumlah data yang tidak diperlukan menjadi berkurang.
SQL sebenarnya tidak mengharuskan penulisan kata kunci dalam huruf kapital. Namun, secara konvensi atau kesepakatan, penulisan kapital membantu memisahkan kata kunci SQL dari nama kolom dan tabel, membuat query lebih mudah dibaca.
Latihan:
- Temukan buku dengan kolom
id
bernilai 4 - Tampilkan buku terbitan tahun 2000 dan 2010
- Tampilkan buku yang BUKAN terbitan tahun 2000 dan 2010
- Temukan buku yang diterbitkan sebelum tahun 2010
Pembahasan:
- Temukan buku dengan kolom
id
bernilai 4
SELECT * FROM Buku WHERE id = 4;
Ekspektasi Hasil: Satu baris (id adalah primary key) yang menampilkan seluruh kolom dari buku dengan id 4.
primary key adalah satu set kolom yang nilainya unique, tidak mungkin sama pada baris lain; dan not null atau mandatory atau required yaitu harus ada nilainya)
id | judul | penulis | tahun | jenis |
---|---|---|---|---|
4 | "Negeri 5 Menara" | Ahmad Fuadi | 2009 | Inspirasi |
- Tampilkan buku terbitan tahun 2000 dan 2010
SELECT * FROM Buku WHERE tahun BETWEEN 2000 AND 2010;
Ekspektasi Hasil: Seluruh kolom dengan baris yang merupakan buku dengan tahun terbit antara 2000 dan 2010.
id | judul | penulis | tahun | jenis |
---|---|---|---|---|
2 | "Laskar Pelangi" | Andrea Hirata | 2005 | Fiksi |
4 | "Negeri 5 Menara" | Ahmad Fuadi | 2009 | Inspirasi |
5 | "Habibie & Ainun" | Bacharuddin Jusuf Habibie | 2010 | Biografi |
- Tampilkan buku yang BUKAN terbitan tahun 2000 dan 2010
SELECT * FROM Buku WHERE tahun NOT IN (2000, 2010);
Ekspektasi Hasil: Seluruh kolom dengan baris yang merupakan buku dengan tahun terbit tidak dalam daftar (2000, 2010).
id | judul | penulis | tahun | jenis |
---|---|---|---|---|
1 | "Senja di Jakarta" | Mochammad Ali | 1963 | Sastra |
3 | "Bumi Manusia" | Pramoedya Ananta Toer | 1980 | Sastra |
- Temukan buku yang diterbitkan sebelum tahun 2010
SELECT * FROM Buku WHERE tahun < 2010;
Ekspektasi Hasil: Seluruh kolom dengan baris yang merupakan buku dengan tahun terbit sebelum (dan tidak termasuk) 2010.