MySQL IS NULL & BUKAN NULL Tutorial dengan CONTOH
Dalam SQL Null adalah nilai sekaligus kata kunci. Mari kita lihat nilai NULL terlebih dahulu –
Null sebagai Nilai
Secara sederhana, NULL hanyalah sebuah tempat untuk data yang tidak ada. Saat melakukan operasi penyisipan pada tabel, ada saatnya beberapa nilai bidang tidak tersedia.
Untuk memenuhi persyaratan sistem manajemen basis data relasional yang sebenarnya, MySQL menggunakan NULL sebagai pengganti nilai yang belum dikirimkan. Tangkapan layar di bawah menunjukkan tampilan nilai NULL di database.
Sekarang mari kita lihat beberapa dasar-dasar NULL sebelum kita melanjutkan diskusi lebih jauh.
- NULL bukan tipe data – ini berarti tidak dikenali sebagai “int”, “tanggal” atau tipe data lain yang ditentukan.
- Operasi aritmatika melibatkan NULL selalu kembalikan BATAL misalnya 69 + NULL = NULL.
- Semua fungsi agregat hanya mempengaruhi baris yang tidak memiliki nilai NULL.
Sekarang mari kita tunjukkan bagaimana fungsi count memperlakukan nilai null. Mari kita lihat isi tabel anggota saat ini-
SELECT * FROM `members`;
Menjalankan skrip di atas memberi kita hasil berikut
membership_ number | full_ names | gender | date_of_ birth | physical_ address | postal_ address | contact_ number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | janetjones@yagoo.cm |
2 | Janet Smith Jones | Female | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
3 | Robert Phil | Male | 12-07-1989 | 3rd Street 34 | NULL | 12345 | rm@tstreet.com |
4 | Gloria Williams | Female | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
5 | Leonard Hofstadter | Male | NULL | Woodcrest | NULL | 845738767 | NULL |
6 | Sheldon Cooper | Male | NULL | Woodcrest | NULL | 976736763 | NULL |
7 | Rajesh Koothrappali | Male | NULL | Woodcrest | NULL | 938867763 | NULL |
8 | Leslie Winkle | Male | 14-02-1984 | Woodcrest | NULL | 987636553 | NULL |
9 | Howard Wolowitz | Male | 24-08-1981 | SouthPark | P.O. Box 4563 | 987786553 | lwolowitz[at]email.me |
Mari kita hitung semua anggota yang telah memperbarui nomor_kontaknya
SELECT COUNT(contact_number) FROM `members`;
Menjalankan kueri di atas akan memberi kita hasil sebagai berikut.
COUNT(contact_number) |
---|
7 |
Catatan: Nilai yang NULL belum disertakan
Apa yang tidak?
Operator logika NOT digunakan untuk menguji kondisi Boolean dan mengembalikan nilai true jika kondisinya salah. Operator NOT mengembalikan nilai salah jika kondisi yang diuji benar
Kondisi | JANGAN Operauntuk Hasil |
---|---|
Benar | Salah |
Salah | Benar |
Mengapa menggunakan NOT null?
Akan ada kasus ketika kita harus melakukan perhitungan pada kumpulan hasil kueri dan mengembalikan nilainya. Melakukan operasi aritmatika apa pun pada kolom yang memiliki nilai NULL akan mengembalikan hasil nol. Untuk menghindari situasi seperti itu terjadi, kita dapat menggunakan klausa NOT NULL untuk membatasi hasil pengoperasian data kita.
BUKAN Nilai NULL
Misalkan kita ingin membuat tabel dengan field tertentu yang harus selalu diberikan nilai saat menyisipkan baris baru ke dalam tabel. Kita bisa menggunakan klausa NOT NULL pada field tertentu saat membuat tabel.
Contoh di bawah ini membuat tabel baru yang berisi data karyawan. Nomor karyawan harus selalu diberikan
CREATE TABLE `employees`( employee_number int NOT NULL, full_names varchar(255) , gender varchar(6) );
Sekarang mari kita coba memasukkan catatan baru tanpa menentukan nama karyawan dan lihat apa yang terjadi.
INSERT INTO `employees` (full_names,gender) VALUES ('Steve Jobs', 'Male');
Menjalankan skrip di atas dalam MySQL workbench memberikan kesalahan berikut-
Kata Kunci NULL
NULL juga dapat digunakan sebagai kata kunci ketika melakukan operasi Boolean pada nilai yang menyertakan NULL. Kata kunci “IS/NOT” digunakan bersama dengan kata NULL untuk tujuan tersebut. Sintaks dasar ketika null digunakan sebagai kata kunci adalah sebagai berikut
`comlumn_name' IS NULL `comlumn_name' NOT NULL
SINI
- “ADALAH BATAL adalah kata kunci yang melakukan perbandingan Boolean. Ia mengembalikan nilai benar jika nilai yang diberikan adalah NULL dan salah jika nilai yang diberikan bukan NULL.
- “BUKAN BATAL”adalah kata kunci yang melakukan perbandingan Boolean. Ia mengembalikan nilai benar jika nilai yang diberikan bukan NULL dan salah jika nilai yang diberikan adalah nol.
Sekarang mari kita lihat contoh praktis yang menggunakan kata kunci NOT NULL untuk menghilangkan semua nilai kolom yang memiliki nilai null.
Melanjutkan contoh di atas, misalkan kita memerlukan detail anggota yang nomor kontaknya tidak null. Kita dapat menjalankan query seperti ini
SELECT * FROM `members` WHERE contact_number IS NOT NULL;
Menjalankan kueri di atas hanya memberikan catatan di mana nomor kontak bukan nol.
Misalkan kita ingin data anggota yang nomor kontaknya null. Kita dapat menggunakan query berikut
SELECT * FROM `members` WHERE contact_number IS NULL;
Menjalankan query di atas memberikan detail anggota yang nomor kontaknya NULL
membership_ number | full_names | gender | date_of_birth | physical_address | postal_address | contact_ number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | janetjones@yagoo.cm |
3 | Robert Phil | Male | 12-07-1989 | 3rd Street 34 | NULL | 12345 | rm@tstreet.com |
5 | Leonard Hofstadter | Male | NULL | Woodcrest | NULL | 845738767 | NULL |
6 | Sheldon Cooper | Male | NULL | Woodcrest | NULL | 976736763 | NULL |
7 | Rajesh Koothrappali | Male | NULL | Woodcrest | NULL | 938867763 | NULL |
8 | Leslie Winkle | Male | 14-02-1984 | Woodcrest | NULL | 987636553 | NULL |
9 | Howard Wolowitz | Male | 24-08-1981 | SouthPark | P.O. Box 4563 | 987786553 | lwolowitz[at]email.me |
Membandingkan nilai nol
Logika tiga nilai – melakukan operasi Boolean pada kondisi yang melibatkan NULL dapat kembali “Tidak Diketahui”, “Benar” atau “Salah”.
Sebagai contoh, menggunakan kata kunci “IS NULL”. saat melakukan operasi perbandingan melibatkan NULL bisa kembali benar or palsu. Menggunakan pengembalian operator perbandingan lainnya “Tidak Diketahui” (BATAL).
Misalkan Anda membandingkan angka lima dengan 5
SELECT 5 =5;
Hasil querynya adalah 1 yang artinya BENAR
5 =5 |
---|
1 |
Mari lakukan operasi yang sama dengan NULL
SELECT NULL = NULL;
NULL = NULL |
---|
NULL |
Mari kita lihat contoh lain
SELECT 5 > 5;
5 > 5 |
---|
0 |
Hasil querynya adalah 0 yang artinya SALAH
Mari kita lihat contoh yang sama menggunakan NULL
SELECT NULL > NULL;
NULL > NULL |
---|
NULL |
Mari kita gunakan kata kunci IS NULL
SELECT 5 IS NULL;
5 IS NULL |
---|
0 |
Hasil query adalah 0 yang FALSE
SELECT NULL IS NULL;
NULL IS NULL |
---|
1 |
Hasil querynya adalah 1 yang BENAR
Kesimpulan
- NULL adalah tempat nilai untuk bidang tabel opsional.
- MySQL memperlakukan nilai NULL secara berbeda dari tipe data lainnya. Nilai NULL ketika digunakan dalam suatu kondisi dievaluasi menjadi nilai Boolean palsu.
- Operasi logika NOT digunakan untuk menguji nilai Boolean dan mengevaluasi menjadi benar jika nilai Boolean salah dan salah jika nilai Boolean benar.
- Klausa NOT NULL digunakan untuk menghilangkan nilai NULL dari kumpulan hasil
- Melakukan operasi aritmatika pada nilai NULL selalu mengembalikan hasil NULL.
- Operator perbandingan seperti [, =, dll.] tidak dapat digunakan untuk membandingkan nilai NULL.