สิ่งที่คุณควรทราบเกี่ยวกับค่า NULL

เข้าใจการใช้ NULLs เพื่อหลีกเลี่ยงปัญหาฐานข้อมูล

ผู้ใช้ใหม่ในโลกของ ฐานข้อมูล มักสับสนโดยค่าพิเศษเฉพาะในฟิลด์ - ค่า NULL ค่านี้สามารถพบได้ในฟิลด์ที่มีข้อมูลประเภทใดและมีความหมายพิเศษในบริบทของฐานข้อมูลเชิงสัมพันธ์ อาจเป็นสิ่งที่ดีที่สุดในการเริ่มต้นการสนทนาของ NULL กับคำไม่กี่คำว่า NULL ไม่ได้ เป็น:

แต่ NULL คือค่าที่ใช้เพื่อแสดงข้อมูลที่ไม่รู้จัก บ่อยครั้งที่โปรแกรมเมอร์ฐานข้อมูลจะใช้วลี "ค่า NULL" แต่ไม่ถูกต้อง โปรดจำไว้ว่า: NULL เป็นค่าที่ไม่รู้จักซึ่งฟิลด์นี้ว่างเปล่า

NULL ในโลกแห่งความเป็นจริง

ลองดูตัวอย่างง่ายๆ: ตารางที่มีสินค้าคงคลังสำหรับยืนผลไม้ สมมติว่าพื้นที่โฆษณาของเรามีแอปเปิ้ล 10 และส้มสามตัว เรายังมีสต็อกพลัม แต่ข้อมูลสินค้าคงคลังของเรายังไม่สมบูรณ์และเราไม่ทราบจำนวนพลัมที่มีอยู่ในสต๊อก (ถ้ามี) ใช้ค่า NULL เราจะมีตารางข้อมูลสินค้าคงคลังที่แสดงในตารางด้านล่าง

สินค้าคงคลังยืนผลไม้

InventoryID ชิ้น ปริมาณ
1 แอปเปิ้ล 10
2 ส้ม 3
3 ลูกพลัม โมฆะ


เห็นได้ชัดว่าไม่ถูกต้องในการรวมจำนวน 0 สำหรับบันทึกพลัมเพราะนั่นหมายความว่าเรา ไม่มี พลัมในสินค้าคงคลัง ในทางกลับกันเราอาจมีพลัมบางส่วน แต่เราไม่แน่ใจ

เป็น NULL หรือ NOT NULL?

ตารางสามารถออกแบบให้ใช้ได้ทั้งค่า NULL หรือไม่

นี่เป็นตัวอย่าง SQL ที่สร้างตารางพื้นที่โฆษณาที่อนุญาตให้มี NULLs:

SQL CREATE TABLE สินค้าคงคลัง (InventoryID INT ไม่เป็นโมฆะ, สินค้า VARCHAR (20) NOT NULL, INT จำนวน);

ตารางพื้นที่โฆษณาที่นี่ไม่อนุญาตค่า NULL สำหรับ InventoryID และคอลัมน์ Item แต่ไม่อนุญาตให้ใช้คอลัมน์ Quantity

ในขณะที่การอนุญาตให้ค่า NULL สามารถปรับได้อย่างสมบูรณ์ค่า NULL อาจทำให้เกิดปัญหาได้เนื่องจากการเปรียบเทียบค่าที่ค่าใดค่าหนึ่งเป็น NULL เสมอส่งผลเป็น NULL

เมื่อต้องการตรวจสอบว่าตารางของคุณมีค่า NULL ให้ใช้ IS NULL หรือ IS NOT NULL operator นี่คือตัวอย่างของ IS NULL:

SQL SELECT INVENTORYID รายการสินค้าปริมาณจากสินค้าคงคลังที่มีปริมาณไม่เป็นโมฆะ;

ให้ตัวอย่างของเราที่นี่นี้จะกลับ:

InventoryID ชิ้น ปริมาณ
3 ลูกพลัม

ใช้งาน NULLs

การทำงานกับค่า NULL มักจะสร้างผลลัพธ์ NULL ขึ้นอยู่กับการ ทำงานของ SQL ตัวอย่างเช่นสมมติว่า A เป็นโมฆะ:

ตัวดำเนินการเลขคณิต

Operators เปรียบเทียบ

นี่เป็นเพียงตัวอย่างบางส่วนของโอเปอเรเตอร์ที่จะคืนค่า NULL ถ้าโอเปอรแรนดเปนคา NULL แบบสอบถามที่ซับซ้อนมากขึ้นมีอยู่และทั้งหมดมีความซับซ้อนโดยค่า NULL จุดบ้านคือถ้าคุณให้ค่า NULL ในฐานข้อมูลของคุณเข้าใจความหมายและวางแผนสำหรับพวกเขา

นั่นเป็น โมฆะ สั้น!