Penjelasan sederhana
AND menggabungkan dua syarat atau lebih, dan sebuah baris baru lolos kalau semua syaratnya terpenuhi. Mirip mencari karyawan yang "tinggal di Jakarta dan juga bergaji minimal 8 juta".
Semakin banyak syarat yang digabung dengan AND, semakin sedikit baris yang lolos, karena setiap syarat menyaring lebih ketat.
Sintaks
WHERE kondisi1 AND kondisi2;
| Bagian | Keterangan |
|---|---|
kondisi1 AND kondisi2 | Keduanya harus benar. |
Tanda [kurung siku] berarti bagian opsional. Kata kunci SQL tidak membedakan huruf besar-kecil, tapi menulisnya dengan huruf besar membuat query lebih mudah dibaca.
Contoh AND
Data contoh: karyawan
Tabel karyawan
| id | nama | dept_id | kota | gaji | tgl_masuk | atasan_id |
|---|---|---|---|---|---|---|
| 1 | Andi Pratama | 3 | Bandung | 12500000 | 2019-03-11 | NULL |
| 2 | Bunga Lestari | 1 | Jakarta | 9800000 | 2020-07-01 | NULL |
| 3 | Candra Wijaya | 3 | Bandung | 8200000 | 2021-02-15 | 1 |
| 4 | Dewi Anggraini | 2 | Jakarta | 7500000 | 2022-05-09 | 6 |
| 5 | Eko Saputra | 1 | Jakarta | 6900000 | 2023-01-16 | 2 |
| 6 | Fajar Nugroho | 2 | Surabaya | 11000000 | 2018-09-03 | NULL |
| 7 | Gita Permata | 3 | Jakarta | 8200000 | 2023-08-21 | 1 |
| 8 | Hendra Gunawan | NULL | Medan | 5500000 | 2024-04-02 | NULL |
SELECT nama, kota, gaji
FROM karyawan
WHERE kota = 'Jakarta'
AND gaji >= 8000000;
Hasil 2 baris
| nama | kota | gaji |
|---|---|---|
| Bunga Lestari | Jakarta | 9800000 |
| Gita Permata | Jakarta | 8200000 |
Hanya karyawan Jakarta yang gajinya minimal 8 juta.
Cara kerjanya, langkah demi langkah
FROM karyawan: 8 baris diambil.- Syarat pertama
kota = 'Jakarta'meloloskan 4 orang: Bunga, Dewi, Eko, Gita. - Syarat kedua
gaji >= 8000000dicek pada keempatnya. Dewi (7,5 juta) dan Eko (6,9 juta) gugur. - Tersisa 2 orang yang memenuhi kedua syarat: Bunga dan Gita.
Dipakai untuk apa di kantor?
- Transaksi di cabang tertentu dan di bulan tertentu.
- Produk kategori Elektronik yang harganya di atas 2 juta.
Kesalahan yang sering terjadi
- Memakai
ANDuntuk dua nilai di kolom yang sama:kota = 'Bandung' AND kota = 'Jakarta'. Tidak mungkin satu baris punya dua kota sekaligus, jadi hasilnya kosong. Yang benar memakaiORatauIN.
OR