Apa Yang Harus Anda Ketahui Mengenai NULL Nilai

Memahami Penggunaan NULLs untuk Mengelakkan Masalah Pangkalan Data

Pengguna yang baru ke dunia pangkalan data sering keliru dengan nilai khusus tertentu ke lapangan - nilai NULL. Nilai ini boleh didapati dalam medan yang mengandungi sebarang jenis data dan mempunyai erti yang sangat istimewa dalam konteks pangkalan data hubungan. Mungkin lebih baik untuk memulakan perbincangan kami tentang NULL dengan beberapa perkataan tentang apa yang NULL tidak :

Sebaliknya, NULL ialah nilai yang digunakan untuk mewakili sekeping data yang tidak diketahui. Selalunya, pengaturcara pangkalan data akan menggunakan frasa "nilai NULL", tetapi ini salah. Ingat: NULL adalah nilai tidak diketahui di mana medan itu kosong.

NULL di Dunia Nyata

Mari kita lihat contoh mudah: jadual yang mengandungi inventori untuk pendirian buah. Katakan bahawa inventori kami mengandungi 10 epal dan tiga oren. Kami juga membeli plum, tetapi maklumat inventori kami tidak lengkap dan kami tidak tahu berapa banyak (jika ada) plum dalam stok. Menggunakan nilai NULL, kami akan mempunyai jadual inventori yang ditunjukkan dalam jadual di bawah.

Inventori Pendirian Buah

InventoriID Perkara Kuantiti
1 Epal 10
2 Jeruk 3
3 Plum NULL


Ia jelas tidak betul untuk memasukkan kuantiti 0 untuk rekod plum, kerana itu akan menyiratkan bahawa kami tidak mempunyai plum dalam inventori. Sebaliknya, kita mungkin mempunyai beberapa plum, tetapi kita tidak pasti.

Untuk NULL atau TIDAK NULL?

Jadual boleh direka untuk sama ada membenarkan nilai NULL atau tidak.

Berikut adalah contoh SQL yang mencipta jadual Inventori yang membolehkan beberapa NULLs:

SQL MENCIPTAKAN INVENTORI TABLE (IN inventori ID INT TIDAK NULL, Item VARCHAR (20) TIDAK NULL, Kuantiti INT);

Jadual Inventori di sini tidak membenarkan nilai NULL untuk InventoriID dan lajur Item , tetapi membolehkan mereka untuk lajur Kuantiti .

Walaupun membenarkan nilai NULL sangat halus, nilai NULL boleh menyebabkan masalah kerana perbandingan mana-mana nilai yang mana NULL sentiasa menyebabkan NULL.

Untuk memeriksa sama ada jadual anda mengandungi nilai NULL, gunakan IS NULL atau operator TIDAK NULL. Inilah contoh IS NULL:

SQL SELECT INVENTORYID, ITEM, QUANTITY FROM INVENTORY WHERE QUANTITY TIDAK NULL;

Memandangkan contoh kami di sini, ini akan kembali:

InventoriID Perkara Kuantiti
3 Plum

Beroperasi di NULLs

Bekerja dengan nilai NULL sering menghasilkan hasil NULL, bergantung kepada operasi SQL . Sebagai contoh, dengan menganggap bahawa A adalah NULL:

Pengendali Aritmetik

Pengendali Perbandingan

Ini hanyalah beberapa contoh pengendali yang akan sentiasa kembali NULL jika satu operan adalah NULL. Pertanyaan yang lebih kompleks wujud, dan semuanya rumit oleh nilai NULL. Titik ambil tempat ialah, jika anda membenarkan nilai NULL dalam pangkalan data anda, memahami implikasi dan pelan untuk mereka.

Itulah NULL secara ringkas!