MySQL SUDAH & BUKAN NULL Tutorial dengan CONTOH

Isi kandungan:

Anonim

Dalam SQL Null adalah nilai dan juga kata kunci. Mari kita perhatikan nilai NULL terlebih dahulu -

Null sebagai Nilai

Secara ringkas, NULL hanyalah pemegang tempat untuk data yang tidak ada. Semasa menjalankan operasi sisipan pada jadual, mereka akan menjadi saat di mana beberapa nilai medan tidak akan tersedia.

Untuk memenuhi keperluan sistem pengurusan pangkalan data relasional yang benar, MySQL menggunakan NULL sebagai pemegang tempat untuk nilai-nilai yang belum diserahkan. Tangkapan skrin di bawah menunjukkan bagaimana nilai NULL kelihatan dalam pangkalan data.

Sekarang mari kita lihat beberapa asas untuk NULL sebelum kita pergi ke perbincangan lebih jauh.

  • NULL bukan jenis data - ini bermaksud ia tidak dikenali sebagai "int", "tarikh" atau jenis data lain yang ditentukan.
  • Operasi aritmetik yang melibatkan NULL selalu mengembalikan NULL misalnya, 69 + NULL = NULL.
  • Semua fungsi agregat hanya mempengaruhi baris yang tidak mempunyai nilai NULL .

Sekarang mari kita tunjukkan bagaimana fungsi kiraan memperlakukan nilai nol. Mari lihat kandungan terkini jadual ahli-

SELECT * FROM `members`;

Melaksanakan skrip di atas memberi kita hasil 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 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 ahli yang telah mengemas kini nombor_hubungan mereka

SELECT COUNT(contact_number) FROM `members`;

Melaksanakan pertanyaan di atas memberi kita hasil berikut.

 
COUNT(contact_number)
7

Catatan: Nilai yang NULL belum dimasukkan

Apa yang TIDAK?

Pengendali TIDAK logik digunakan untuk menguji keadaan Boolean dan kembali benar jika keadaannya salah. Pengendali NOT kembali palsu sekiranya keadaan yang diuji adalah benar

Keadaan

BUKAN Hasil Pengendali

Betul

Salah

Salah

Betul

Mengapa menggunakan TIDAK batal?

Akan ada kes apabila kita harus melakukan pengiraan pada set hasil pertanyaan dan mengembalikan nilai. Melakukan sebarang operasi aritmetik pada lajur yang mempunyai nilai NULL mengembalikan hasil nol. Untuk mengelakkan situasi seperti itu berlaku, kita dapat menggunakan klausa NOT NULL untuk membatasi hasil di mana data kita beroperasi.

BUKAN NULL Nilai

Anggaplah bahawa kita mahu membuat jadual dengan medan tertentu yang harus selalu dibekalkan dengan nilai ketika memasukkan baris baru dalam jadual. Kita boleh menggunakan klausa NOT NULL pada medan tertentu semasa membuat jadual.

Contoh yang ditunjukkan di bawah membuat jadual baru yang mengandungi data pekerja. Nombor pekerja mesti selalu dibekalkan

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

Sekarang mari kita cuba memasukkan rekod baru tanpa menyatakan nama pekerja dan melihat apa yang berlaku.

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

Melaksanakan skrip di atas di MySQL workbench memberikan ralat berikut -

Kata kunci NULL

NULL juga dapat digunakan sebagai kata kunci ketika melakukan operasi Boolean pada nilai yang termasuk NULL. Kata kunci "IS / NOT" digunakan bersamaan dengan perkataan NULL untuk tujuan tersebut. Sintaks asas apabila null digunakan sebagai kata kunci adalah seperti berikut

`comlumn_name' IS NULL`comlumn_name' NOT NULL

SINI

  • "IS NULL" adalah kata kunci yang melakukan perbandingan Boolean. Ia kembali benar jika nilai yang dibekalkan adalah NULL dan salah jika nilai yang dibekalkan tidak NULL.
  • "NOT NULL" adalah kata kunci yang melakukan perbandingan Boolean. Ia kembali benar jika nilai yang dibekalkan tidak NULL dan salah jika nilai yang dibekalkan adalah nol.

Sekarang mari kita lihat contoh praktikal yang menggunakan kata kunci NOT NULL untuk menghilangkan semua nilai lajur yang mempunyai nilai null.

Teruskan dengan contoh di atas, anggaplah kita memerlukan butiran ahli yang nombor hubungannya tidak kosong. Kami boleh melaksanakan pertanyaan seperti

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

Melaksanakan pertanyaan di atas hanya memberikan rekod di mana nombor kenalan tidak kosong.

Katakanlah kita mahukan rekod ahli di mana nombor kenalan adalah nol. Kita boleh menggunakan pertanyaan berikut

SELECT * FROM `members` WHERE contact_number IS NULL;

Melaksanakan pertanyaan di atas memberikan maklumat ahli yang nombor hubungannya adalah NULL

 
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 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 sifar s

Logik tiga nilai - melakukan operasi Boolean dengan syarat yang melibatkan NULL boleh mengembalikan "Tidak Dikenal", "Benar" atau "Salah".

Contohnya, menggunakan kata kunci "IS NULL" semasa melakukan operasi perbandingan yang melibatkan NULL boleh kembali benar atau salah . Menggunakan operator perbandingan lain mengembalikan "Tidak Dikenal" (NULL).

Katakan anda membandingkan nombor lima dengan 5

SELECT 5 =5;

Hasil pertanyaan adalah 1 yang bermaksud BENAR

 
5 =5
1

Mari lakukan operasi yang sama dengan NULL

SELECT NULL = NULL;
 
NULL = NULL
NULL

Mari lihat contoh lain

SELECT 5 > 5;
 
5> 5
0

Hasil pertanyaan adalah 0 yang bermaksud SALAH

Mari kita lihat contoh yang sama menggunakan NULL

SELECT NULL > NULL;
 
NULL> NULL
NULL

Mari gunakan kata kunci IS NULL

SELECT 5 IS NULL;
 
5 IS NULL
0

Hasil pertanyaan adalah 0 yang SALAH

SELECT NULL IS NULL;
 
NULL IS NULL
1

Hasil pertanyaan adalah 1 yang BENAR

Ringkasan

  • NULL adalah pemegang tempat nilai untuk medan jadual pilihan.
  • MySQL memperlakukan nilai NULL secara berbeza daripada jenis data lain. Nilai NULL apabila digunakan dalam keadaan menilai nilai Boolean yang salah.
  • Operasi logik NOT digunakan untuk menguji nilai Boolean dan menilai benar jika nilai Boolean salah dan salah jika nilai Boolean itu benar.
  • Klausa NOT NULL digunakan untuk menghilangkan nilai NULL dari set hasil
  • Melakukan operasi aritmetik pada nilai NULL selalu mengembalikan hasil NULL.
  • Operator perbandingan seperti [, =, dll] tidak dapat digunakan untuk membandingkan nilai NULL.