SQL WHERE clause merupakan query sql yang berfungsi untuk melakukan filter terhadap suatu records dalam tabel. Sehingga data hasil yang diperoleh hanya yang sesuai dengan kondisi yang diberikan.
Konsep yang paling mudah untuk memahami SQL WHERE clause kurang lebih seperti berikut ini.
Ambilkan saya data pada kolom berikut dari tabel ini, di mana kondisinya harus seperti ini.
Adapun jika dituliskan dalam bentuk query sql, maka sintaks where sql sebagai berikut.
Sintaks SQL WHERE Clause
SELECT
kolom1, kolom2, ...
FROM
nama_tabel
WHERE
kondisinya;
Dalam dua baris awal pada dasarnya seperti ketika melakukan query select statement biasa, tetapi untuk kasus ini ditambahkan WHERE clause SQL dengan diikuti kondisi filternya seperti apa.
Perlu diingat!! WHERE clause tidak hanya untuk SELECT statement, kamu juga bisa menggunakannya untuk UPDATE, DELETE, dll.
SQL WHERE untuk Text Fields dan Numeric Fields
Dalam kolom tabel database, satu kolom punya tipe data bisa berupa teks ataupun angka. SQL memerlukan single quotes '...'
di antara nilai teksnya, sedangkan untuk tipe angka tidak memerlukan quotes.
Agar memudahkan pemahaman, mari kita gunakan contoh kasus pada tabel students
berikut.
id | name | class |
---|---|---|
1 | Dadan | X IPA 1 |
2 | Doni | X IPA 2 |
3 | Caca | X IPA 3 |
4 | Lala | X IPA 1 |
5 | Indra | X IPA 2 |
Contoh kasus SQL WHERE untuk kasus kolom teks
Misalkan kita hendak mengambil semua kolom untuk data dari tabel di atas dengan filter kondisi kelas X IPA 1 saja yang diambil. Maka query sql nya sebagai berikut.
SELECT
*
FROM
students
WHERE
class='X IPA 1';
Output:
id | name | class |
---|---|---|
1 | Dadan | X IPA 1 |
4 | Lala | X IPA 1 |
Contoh kasus SQL WHERE untuk kasus kolom angka
Misalkan untuk kasus sekarang kita ingin mengambil semua kolom dari tabel di atas dengan kondisi hanya id nomor 2 saja. Maka query sql nya sebagai berikut.
SELECT
*
FROM
students
WHERE
id=2;
Output:
id | name | class |
---|---|---|
2 | Doni | X IPA 2 |
SQL WHERE AND untuk Multiple Conditions
Jika diperhatikan, contoh kasus di atas itu hanya memfilter dengan satu kondisi saja. Bagaimana jika kita ingin melakukan query tapi dengan dua kondisi yang harus terpenuhi?
Maka jawabannya bisa menggunakan operator AND. Misal di tabel students
tadi, kelas X IPA 1 itu ada dua nama murid Dadan & Lala, bagaimana cara mengambil data dengan kondisi namanya Dadan di kelas X IPA 1?
Berikut contoh query sql nya.
SELECT
*
FROM
students
WHERE
name='Dadan' AND
class='X IPA 1';
Output:
id | name | class |
---|---|---|
1 | Dadan | X IPA 1 |
SQL WHERE LIKE
Berikutnya, bagaimana jika kita ingin mengambil semua kolom data dari tabel dengan filter kondisi name
dimulai dengan huruf tertentu? Misalkan untuk kasus di tabel students
ada dua nama dengan awalan huruf 'D', bagaimana query nya?
SELECT
*
FROM
students
WHERE
name LIKE
'D%';
Output:
id | name | class |
---|---|---|
1 | Dadan | X IPA 1 |
2 | Doni | X IPA 2 |
Operator WHERE Clause
Dalam kasus-kasus di atas, kita sebenarnya sudah mengenal beberapa operator yang bisa digunakan untuk SQL WHERE clause. Adapun operator-operator lain yang bisa digunakan dalam WHERE clause bisa kamu lihat pada tabel berikut.
Operator | Deskripsi |
---|---|
= | Operator sama dengan, bisa digunakan untuk tipe teks ataupun angka |
> | Operator lebih dari, digunakan untuk tipe angka |
< | Operator kurang dari, digunakan untuk tipe angka |
>= | Operator lebih dari atau sama dengan, digunakan untuk tipe angka |
<= | Operator kurang dari atau sama dengan, digunakan untuk tipe angka |
<> atau != | Operator tidak sama, bisa digunakan untuk tipe teks ataupun angka |
BETWEEN | Operator di antara rentang tertentu, bisa digunakan untuk tipe teks ataupun angka |
LIKE | Operator pencarian pola, bisa digunakan untuk tipe teks |
IN | Operator untuk menspesifikasi kemungkinan nilai yang multiple dalam sebuah kolom |