Penjelasan sederhana
NOT membalik syarat. Yang tadinya lolos jadi tidak lolos, dan sebaliknya. NOT kota = 'Jakarta' artinya "semua yang kotanya bukan Jakarta".
NOT sering ditempel di depan operator lain: NOT IN, NOT LIKE, NOT BETWEEN, NOT EXISTS, dan IS NOT NULL.
Sintaks
WHERE NOT kondisi;
| Bagian | Keterangan |
|---|---|
NOT | Bisa dipakai bersama IN, LIKE, BETWEEN, dan EXISTS: NOT IN, NOT LIKE, dst. |
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 NOT
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
FROM karyawan
WHERE NOT kota = 'Jakarta';
Hasil 4 baris
| nama | kota |
|---|---|
| Andi Pratama | Bandung |
| Candra Wijaya | Bandung |
| Fajar Nugroho | Surabaya |
| Hendra Gunawan | Medan |
Semua karyawan selain yang berdomisili di Jakarta.
Cara kerjanya, langkah demi langkah
FROM karyawan: 8 baris diambil.- Syarat
kota = 'Jakarta'sebenarnya cocok untuk 4 orang. NOTmembaliknya, jadi yang lolos justru 4 orang lainnya: Andi dan Candra (Bandung), Fajar (Surabaya), dan Hendra (Medan).
Dipakai untuk apa di kantor?
- Mengecualikan data uji coba atau data internal dari laporan.
- Menampilkan semua pesanan kecuali yang sudah selesai.
Kesalahan yang sering terjadi
- Lupa bahwa baris dengan nilai NULL tidak ikut lolos. Kalau ada karyawan yang kotanya kosong, ia tidak muncul di
NOT kota = 'Jakarta', karena NULL dianggap "tidak diketahui", bukan "bukan Jakarta".
Progres bab Filter Data
0/8 dipelajari
Lanjut: IN