MySQL IS NULL & IS NOT NULL dengan Contoh

โšก Ringkasan Cerdas

MySQL IS NULL dan IS NOT NULL adalah kata kunci perbandingan yang menguji apakah suatu kolom berisi nilai yang hilang. NULL menandai data yang tidak ada, berperilaku berbeda dari nol atau string kosong, dan memerlukan operator khusus untuk pemfilteran yang andal.

  • ๐Ÿงฉ Definisi Inti: NULL adalah nilai pengganti untuk data yang tidak ada. Ini bukan tipe data, dan bukan angka nol.
  • โž— Perilaku Aritmatika: Ekspresi aritmatika apa pun yang melibatkan NULL akan menghasilkan NULL, jadi 69 + NULL akan menghasilkan NULL, bukan 69.
  • ๐Ÿ“Š Dampak Agregat: Fungsi COUNT(column) dan fungsi agregasi lainnya melewatkan baris NULL, sedangkan COUNT(*) tetap menghitung setiap baris dalam tabel.
  • ๐Ÿšซ Batasan TIDAK BOLEH NULL: Dengan mendeklarasikan kolom sebagai NOT NULL, maka setiap penyisipan data yang menghilangkan nilai akan ditolak, sehingga melindungi kolom wajib seperti pengidentifikasi.
  • ๐Ÿ” Penyaringan yang Tepat: IS NULL dan IS NOT NULL adalah satu-satunya pengujian yang dapat diandalkan, karena operator kesamaan tidak pernah cocok dengan nilai NULL.
  • ๏ธ Logika Tiga Nilai: Perbandingan terhadap NULL akan menghasilkan UNKNOWN, sehingga SELECT NULL = NULL akan menghasilkan NULL, bukan TRUE.

MySQL IS NULL dan IS NOT NULL

Dalam SQL, NULL adalah nilai dan juga kata kunci. Mari kita lihat nilai NULL terlebih dahulu.

MySQL ADALAH NULL & BUKAN NULL

Apa itu NULL dalam MySQL?

Secara sederhana, NULL adalah nilai pengganti untuk data yang tidak ada.Saat melakukan operasi penyisipan data pada tabel, terkadang beberapa nilai field tidak tersedia.

Untuk memenuhi persyaratan sistem manajemen basis data relasional yang sebenarnya, MySQL menggunakan NULL sebagai tempat penampung untuk nilai yang belum dikirimkan. Tangkapan layar di bawah ini menunjukkan bagaimana nilai NULL terlihat dalam tabel basis data.

Null sebagai Nilai

Perhatikan bahwa sel kosong ditandai dengan NULL, bukan teks kosong dan bukan angka nol. Sebelum melanjutkan, mari kita lihat beberapa dasar tentang NULL.

  • NULL bukan tipe data โ€“ ini berarti tidak dikenali sebagai โ€œintโ€, โ€œtanggalโ€ atau tipe data lain yang ditentukan.
  • Operasi aritmatika melibatkan NULL selalu kembalikan BATALMisalnya, 69 + NULL = NULL.
  • jembatan fungsi agregat Abaikan baris yang berisi nilai NULL.Satu-satunya pengecualian adalah COUNT(*), yang menghitung setiap baris tanpa memperhatikan nilai NULL.

Bagaimana Fungsi Agregat Memperlakukan NULL

Aturan ini mengubah jawaban yang dikembalikan oleh kueri pelaporan, jadi mari kita buktikan. Mulailah dengan isi tabel anggota saat ini.

SELECT * FROM `members`;

Menjalankan skrip di atas akan memberi kita hasil sebagai berikut.

membership_ number full_ names gender date_of_ birth physical_ address postal_ address contact_ number email
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 12345rm@tstreet.com
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL
5 Leonard Hofstadter MaleNULL 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

Kolom contact_number yang disorot berisi sembilan baris, tetapi dua di antaranya bernilai NULL. Mari kita hitung semua anggota yang telah memperbarui nomor kontak mereka.

SELECT COUNT(contact_number) FROM `members`;

Menjalankan kueri di atas akan memberi kita hasil sebagai berikut.

COUNT(contact_number)
7

Catatan: Jawabannya adalah 7 dan bukan 9, karena dua nilai NULL tidak disertakan. Menjalankan COUNT(*) pada tabel yang sama akan menghasilkan 9, karena COUNT(*) menghitung baris, bukan nilai.

BUKAN Nilai NULL

Pendekatan yang lebih aman adalah dengan mencegah nilai NULL masuk ke kolom wajib sama sekali. Itulah tugas dari batasan NOT NULL.

Apa yang BUKAN Operauntuk?

Operator logika NOT digunakan untuk menguji kondisi Boolean, dan akan mengembalikan nilai true jika kondisi tersebut salah. Operator NOT akan mengembalikan nilai false jika kondisi yang diuji benar.

Kondisi JANGAN Operauntuk Hasil
Benar Salah
Salah Benar

Mengapa menggunakan NOT NULL?

Akan ada kasus di mana kita harus melakukan komputasi pada kumpulan hasil kueri dan mengembalikan nilainya. Melakukan operasi aritmatika apa pun pada kolom yang berisi nilai NULL akan menghasilkan hasil NULL. Untuk menghindari situasi seperti itu, kita dapat menggunakan klausa NOT NULL untuk membatasi hasil yang akan diproses oleh data kita.

Membuat Tabel dengan Kolom NOT NULL

Misalkan kita ingin membuat tabel dengan beberapa kolom yang harus selalu diisi nilainya saat memasukkan baris baru. Kita dapat menggunakan klausa NOT NULL pada kolom tertentu saat membuat tabel.

Contoh yang ditunjukkan di bawah ini membuat tabel baru yang berisi data karyawan. Nomor karyawan harus selalu diisi.

CREATE TABLE `employees`(
  employee_number int NOT NULL,
  full_names varchar(255) ,
  gender varchar(6)
);

Sekarang mari kita coba memasukkan data baru tanpa menentukan nomor karyawan dan lihat apa yang terjadi.

INSERT INTO `employees` (full_names,gender) VALUES ('Steve Jobs', 'Male');

Menjalankan skrip di atas dalam MySQL Workbench Muncul kesalahan berikut karena kolom wajib dihilangkan.

BUKAN Nilai NULL

Kata Kunci IS NULL dan IS NOT NULL

Batasan tersebut memblokir nilai NULL baru. Untuk bekerja dengan nilai NULL yang sudah ada, NULL digunakan sebagai kata kunci. Sintaksnya adalah sebagai berikut.

column_name IS NULL
column_name IS 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 NULLโ€ adalah kata kunci yang melakukan perbandingan sebaliknya. Kata kunci ini mengembalikan nilai true jika nilai yang diberikan bukan NULL dan false jika nilai yang diberikan adalah NULL.

Mari kita lihat contoh praktis yang menggunakan kata kunci IS NOT NULL untuk menghilangkan semua baris yang berisi nilai NULL dalam sebuah kolom.

Melanjutkan pembahasan pada tabel anggota di atas, misalkan kita membutuhkan detail anggota yang nomor kontaknya tidak NULL. Kita dapat menjalankan kueri seperti ini.

SELECT * FROM `members` WHERE contact_number IS NOT NULL;

Eksekusi kueri di atas hanya mengembalikan tujuh catatan yang memuat nomor kontak, yang sesuai dengan hasil COUNT dari bagian sebelumnya.

Sekarang misalkan kita menginginkan kebalikannya: data anggota yang nomor kontaknya hilang. Kita dapat menggunakan kueri berikut.

SELECT * FROM `members` WHERE contact_number IS NULL;

Menjalankan kueri di atas akan menghasilkan dua catatan anggota yang nomor kontaknya adalah NULL.

membership_ number full_names gender date_of_birth physical_address postal_address contact_ number email
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL

Peringatan: Kondisi seperti WHERE contact_number = NULL akan mengembalikan himpunan hasil kosong, meskipun nilai NULL ada. Operator kesamaan tidak akan pernah cocok dengan NULL, jadi IS NULL adalah satu-satunya pengujian yang benar.

Membandingkan Nilai NULL dengan Logika Tiga Nilai

Logika tiga nilai โ€“ melakukan operasi Boolean pada kondisi yang melibatkan NULL dapat mengembalikan โ€œTidak diketahuiโ€, โ€œBenarโ€ atau โ€œSalahโ€.

Menggunakan kata kunci โ€œIS NULLโ€ saat melakukan operasi perbandingan melibatkan NULL Pengembalian benar or palsuMenggunakan operator perbandingan lainnya akan menghasilkan โ€œTidak diketahuiโ€ (NULL)Tabel di bawah ini membandingkan setiap ekspresi secara berdampingan.

Ekspresi Hasil Arti
PILIH 5 = 5; 1 BENAR
PILIH NULL = NULL; NULL UNKNOWN
PILIH 5 > 5; 0 SALAH
PILIH NULL > NULL; NULL UNKNOWN
SELECT 5 IS NULL; 0 SALAH
SELECT NULL IS NULL; 1 BENAR

Bandingkan angka lima dengan dirinya sendiri, lalu ulangi operasi tersebut dengan NULL.

SELECT 5 =5;
SELECT NULL = NULL;
5 =5 NULL = NULL
1 NULL

Hasil pertama adalah 1 (TRUE). Hasil kedua adalah NULL, karena MySQL Tidak dapat menyatakan bahwa satu nilai yang tidak diketahui sama dengan nilai lain yang tidak diketahui. Sekarang gunakan kata kunci IS NULL pada nilai yang sama.

SELECT 5 IS NULL;
SELECT NULL IS NULL;
5 IS NULL NULL IS NULL
0 1

Kali ini jawabannya pasti: 0 (SALAH) dan 1 (BENAR). Hanya kata kunci IS NULL dan IS NOT NULL yang memberikan jawaban pasti ketika terdapat nilai NULL.

Pertanyaan Umum Demo Slot

Nol adalah angka dan string kosong adalah teks, jadi keduanya memenuhi uji kesamaan. NULL berarti tidak ada nilai yang diberikan sama sekali, itulah sebabnya ia hanya merespons IS NULL dan IS NOT NULL.

IFNULL(column, 'N/A') mengembalikan nilai pengganti setiap kali kolom bernilai NULL. COALESCE(a, b, c) mengembalikan argumen pertama yang bukan NULL. Keduanya berguna di dalam MySQL fungsi dan laporan.

Nomor MySQL Menerapkan NOT NULL secara otomatis ke setiap kolom kunci utama, karena kunci yang mengidentifikasi suatu baris tidak boleh hilang. Indeks UNIQUE berbeda dan mengizinkan beberapa nilai NULL.

Biasanya, ya. Asisten AI di dalam alat seperti... MySQL Workbench Ubah โ€œanggota tanpa nomor teleponโ€ menjadi klausa WHERE column IS NULL. RevPerhatikan filternya, karena uji kesamaan terhadap NULL secara diam-diam tidak mengembalikan apa pun.

Seringkali, ya. Alat peninjau AI menandai kesalahan seperti perbandingan = NULL, dan lain sebagainya. MEMILIH yang menghitung rata-rata kolom yang berisi nilai NULL, dan TIDAK termasuk dalam daftar yang berisi nilai NULL. Keputusan akhir berada di tangan orang yang mengetahui data tersebut.

Ringkaslah postingan ini dengan: