Secara sederhana, NULL hanyalah tempat untuk data yang tidak ada. Saat melakukan operasi penyisipan pada tabel, itu akan menjadi saat ketika beberapa nilai bidang tidak akan tersedia
Untuk memenuhi persyaratan sistem manajemen basis data relasional yang sebenarnya, MySQL menggunakan NULL sebagai tempat penampung nilai-nilai yang belum dikirimkan. Tangkapan layar di bawah ini menunjukkan bagaimana nilai NULL terlihat dalam database
Sekarang mari kita lihat beberapa dasar untuk NULL sebelum kita melangkah lebih jauh ke dalam diskusi
- NULL bukan tipe data - ini berarti tidak dikenali sebagai "int", "date" atau tipe data lain yang ditentukan
- Operasi aritmatika yang melibatkan NULL selalu mengembalikan NULL misalnya, 69 + NULL = NULL
- Semua fungsi agregat hanya memengaruhi 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 sebagai berikut
membership_ numberfull_ namesgenderdate_of_ birthphysical_ addresspostal_ addresscontact_ numberemail 1Janet JonesFemale21-07-1980First Street Plot No 4Private Bag0759 253 542janetjones@yagoo.cm 2Janet Smith JonesFemale23-06-1980Melrose 123NULLNULLjj@fstreet.com 3Robert PhilMale12-07-19893rd Street 34NULL12345rm@tstreet.com 4Gloria WilliamsFemale14-02-19842nd Street 23NULLNULLNULL 5Leonard HofstadterMaleNULLWoodcrestNULL845738767NULL 6Sheldon CooperMaleNULLWoodcrestNULL976736763NULL 7Rajesh KoothrappaliMaleNULLWoodcrestNULL938867763NULL 8Leslie WinkleMale14-02-1984WoodcrestNULL987636553NULL 9Howard WolowitzMale24-08-1981SouthParkP.O. Box 4563987786553lwolowitz[at]email.me_
Mari hitung semua anggota yang telah memperbarui contact_number mereka
SELECT COUNT[contact_number] FROM `members`;
Menjalankan kueri di atas memberi kita hasil berikut
COUNT[contact_number] 7
Catatan. Nilai yang NULL belum disertakan
Apa yang tidak?
Operator logika NOT digunakan untuk menguji kondisi Boolean dan mengembalikan true jika kondisi salah. Operator NOT mengembalikan false jika kondisi yang diuji benar
KondisiNOT Hasil OperatorBENAR
PALSU
PALSU
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 mengembalikan hasil null. Untuk menghindari situasi seperti itu terjadi, kami dapat menggunakan penggunaan klausa NOT NULL untuk membatasi hasil di mana data kami beroperasi.
BUKAN Nilai NULL
Misalkan kita ingin membuat tabel dengan bidang tertentu yang harus selalu dilengkapi dengan nilai saat menyisipkan baris baru dalam tabel. Kita bisa menggunakan klausa NOT NULL pada bidang tertentu saat membuat tabel
Contoh yang ditunjukkan 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 record baru tanpa menentukan nama karyawan dan lihat apa yang terjadi
INSERT INTO `employees` [full_names,gender] VALUES ['Steve Jobs', 'Male'];
Menjalankan skrip di atas di meja kerja MySQL memberikan kesalahan berikut-
Kata kunci NULL
NULL juga dapat digunakan sebagai kata kunci saat melakukan operasi Boolean pada nilai yang menyertakan NULL. Kata kunci “IS/NOT” digunakan bersamaan 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_
DI SINI
- “IS NULL” adalah kata kunci yang melakukan perbandingan Boolean. Mengembalikan true jika nilai yang diberikan adalah NULL dan false jika nilai yang diberikan bukan NULL
- "NOT NULL" adalah kata kunci yang melakukan perbandingan Boolean. Mengembalikan true jika nilai yang diberikan bukan NULL dan false jika nilai yang diberikan adalah null
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 membutuhkan detail anggota yang nomor kontaknya bukan nol. Kami dapat menjalankan kueri seperti
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 catatan anggota di mana nomor kontaknya nol. Kita dapat menggunakan kueri berikut
SELECT * FROM `members` WHERE contact_number IS NULL;_
Menjalankan kueri di atas memberikan detail anggota yang nomor kontaknya NULL
membership_ numberfull_namesgenderdate_of_birthphysical_addresspostal_addresscontact_ numberemail 1Janet JonesFemale21-07-1980First Street Plot No 4Private Bag0759 253 542janetjones@yagoo.cm 3Robert PhilMale12-07-19893rd Street 34NULL12345rm@tstreet.com 5Leonard HofstadterMaleNULLWoodcrestNULL845738767NULL 6Sheldon CooperMaleNULLWoodcrestNULL976736763NULL 7Rajesh KoothrappaliMaleNULLWoodcrestNULL938867763NULL 8Leslie WinkleMale14-02-1984WoodcrestNULL987636553NULL 9Howard WolowitzMale24-08-1981SouthParkP.O. Box 4563987786553lwolowitz[at]email.me_
Membandingkan nilai nol
Logika tiga nilai – melakukan operasi Boolean pada kondisi yang melibatkan NULL dapat mengembalikan “Unknown”, “True” atau “False”
Misalnya, menggunakan kata kunci “IS NULL” saat melakukan operasi perbandingan yang melibatkan NULL dapat mengembalikan benar atau salah. Menggunakan operator pembanding lain mengembalikan "Tidak Dikenal" [NULL]