Dalam SQL Null adalah nilai sekaligus kata kunci. Mari kita lihat nilai NULL terlebih dahulu -
Nihil sebagai Nilai
Sederhananya, NULL hanyalah placeholder untuk data yang tidak ada. Saat melakukan operasi penyisipan pada tabel, itu akan menjadi saat beberapa nilai bidang tidak akan tersedia.
Untuk memenuhi persyaratan sistem manajemen database relasional yang sebenarnya, MySQL menggunakan NULL sebagai placeholder untuk 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_ 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 | This email address is being protected from spambots. You need JavaScript enabled to view it. |
2 | Janet Smith Jones | Female | 23-06-1980 | Melrose 123 | NULL | NULL | This email address is being protected from spambots. You need JavaScript enabled to view it. |
3 | Robert Phil | Male | 12-07-1989 | 3rd Street 34 | NULL | 12345 | This email address is being protected from spambots. You need JavaScript enabled to view it. |
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 hitung semua anggota yang telah memperbarui nomor_kontak mereka
SELECT COUNT(contact_number) FROM `members`;
Mengeksekusi kueri di atas 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 false jika kondisi yang diuji benar
Kondisi |
BUKAN Hasil Operator |
Benar |
Salah |
Salah |
Benar |
Mengapa menggunakan NOT null?
Akan ada kasus ketika kita harus melakukan perhitungan pada hasil kueri dan mengembalikan nilainya. Melakukan operasi aritmatika apa pun pada kolom yang memiliki nilai NULL mengembalikan hasil nol. Untuk menghindari situasi seperti itu terjadi, kami dapat menggunakan klausa NOT NULL untuk membatasi hasil operasi data kami.
NOT NULL Values
Misalkan kita ingin membuat tabel dengan bidang tertentu yang harus selalu diberi nilai saat memasukkan baris baru ke dalam tabel. Kita dapat 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 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
- "IS NULL" adalah kata kunci yang melakukan perbandingan Boolean. Ini 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. Ini 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 null. Kami dapat mengeksekusi 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 record anggota dimana nomor kontaknya null. Kita bisa menggunakan query berikut
SELECT * FROM `members` WHERE contact_number IS NULL;
Mengeksekusi kueri di atas memberikan detail anggota yang nomor kontaknya adalah 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 | This email address is being protected from spambots. You need JavaScript enabled to view it. |
3 | Robert Phil | Male | 12-07-1989 | 3rd Street 34 | NULL | 12345 | This email address is being protected from spambots. You need JavaScript enabled to view it. |
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 s
Logika tiga nilai - melakukan operasi Boolean pada kondisi yang melibatkan NULL dapat menghasilkan "Unknown", "True", atau "False".
Misalnya, menggunakan kata kunci "IS NULL" saat melakukan operasi perbandingan yang melibatkan NULL dapat menghasilkan true atau false . Menggunakan operator perbandingan lain mengembalikan "Tidak Diketahui" (NULL).
Misalkan Anda membandingkan angka lima dengan 5
SELECT 5 =5;
Hasil query 1 yang artinya BENAR
5 =5 |
---|
1 |
Mari lakukan operasi yang sama dengan NULL
SELECT NULL = NULL;
NULL = NULL |
---|
NULL |
Mari kita lihat contoh lainnya
SELECT 5 > 5;
5> 5 |
---|
0 |
Hasil query 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 queri adalah 0 yang FALSE
SELECT NULL IS NULL;
NULL IS NULL |
---|
1 |
Hasil kueri adalah 1 yang BENAR
Ringkasan
- NULL adalah placeholder nilai untuk bidang tabel opsional.
- MySQL memperlakukan nilai NULL secara berbeda dari tipe data lainnya. Nilai NULL saat digunakan dalam kondisi mengevaluasi ke nilai Boolean palsu.
- Operasi logika NOT digunakan untuk menguji nilai Boolean dan mengevaluasi ke true jika nilai Boolean salah dan salah jika nilai Boolean benar.
- Klausa NOT NULL digunakan untuk menghilangkan nilai NULL dari set hasil
- Melakukan operasi aritmatika pada nilai NULL selalu mengembalikan hasil NULL.
- Operator perbandingan seperti [, =, etc.] tidak dapat digunakan untuk membandingkan nilai NULL.