ผู้ใช้ใหม่ในโลกของฐานข้อมูลมักสับสนโดยค่าพิเศษเฉพาะในฟิลด์ - ค่า NULL ค่านี้สามารถพบได้ในฟิลด์ที่มีข้อมูลประเภทใดและมีความหมายพิเศษในบริบทของฐานข้อมูลเชิงสัมพันธ์ อาจเป็นการดีที่สุดในการเริ่มต้นการสนทนาของ NULL โดยมีคำไม่กี่คำว่า NULL คืออะไร ไม่ :
- NULL ไม่ใช่จำนวนศูนย์
- NULL ไม่ใช่ค่าสตริงที่ว่างเปล่า ("")
แต่ NULL คือค่าที่ใช้เพื่อแสดงข้อมูลที่ไม่รู้จัก บ่อยครั้งที่โปรแกรมเมอร์ฐานข้อมูลจะใช้วลี "ค่า NULL" แต่ไม่ถูกต้อง โปรดจำไว้ว่า: NULL เป็นค่าที่ไม่รู้จักซึ่งฟิลด์นี้ว่างเปล่า
NULL ในโลกแห่งความเป็นจริง
ลองดูตัวอย่างง่ายๆ: ตารางที่มีสินค้าคงคลังสำหรับยืนผลไม้ สมมติว่าพื้นที่โฆษณาของเรามีแอปเปิ้ล 10 และส้มสามตัว เรายังมีสต็อกพลัม แต่ข้อมูลสินค้าคงคลังของเรายังไม่สมบูรณ์และเราไม่ทราบจำนวนพลัมที่มีอยู่ในสต๊อก (ถ้ามี) ใช้ค่า NULL เราจะมีตารางข้อมูลสินค้าคงคลังที่แสดงในตารางด้านล่าง
สินค้าคงคลังยืนผลไม้
InventoryID | ชิ้น | ปริมาณ |
1 | แอปเปิ้ล | 10 |
2 | ส้ม | 3 |
3 | ลูกพลัม | โมฆะ |
เห็นได้ชัดว่าไม่ถูกต้องในการรวมจำนวน 0 สำหรับบันทึกพลัมเพราะนั่นหมายความว่าเรามี ไม่ พลัมในสินค้าคงคลัง ในทางกลับกันเราอาจมีพลัมบางส่วน แต่เราไม่แน่ใจ ตารางสามารถออกแบบให้ใช้ได้ทั้งค่า NULL หรือไม่ นี่เป็นตัวอย่าง SQL ที่สร้างตารางพื้นที่โฆษณาที่อนุญาตให้มี NULLs: SQL CREATE TABLE สินค้าคงคลัง (InventoryID INT ไม่เป็นโมฆะ, สินค้า VARCHAR (20) NOT NULL, INT จำนวน); ตารางพื้นที่โฆษณาที่นี่ไม่อนุญาตค่า NULL สำหรับ InventoryID และ ชิ้น คอลัมน์ แต่ไม่อนุญาตให้พวกเขาสำหรับ ปริมาณ คอลัมน์. ในขณะที่การอนุญาตให้ค่า NULL สามารถปรับได้อย่างสมบูรณ์ค่า NULL อาจทำให้เกิดปัญหาได้เนื่องจากการเปรียบเทียบค่าที่ค่าใดค่าหนึ่งเป็น NULL เสมอส่งผลเป็น NULL เมื่อต้องการตรวจสอบว่าตารางของคุณมีค่า NULL ให้ใช้ IS NULL หรือ IS NOT NULL operator นี่คือตัวอย่างของ IS NULL: SQL SELECT INVENTORYID รายการสินค้าปริมาณจากสินค้าคงคลังที่มีปริมาณไม่เป็นโมฆะ; ให้ตัวอย่างของเราที่นี่นี้จะกลับ: การทำงานกับค่า NULL มักจะสร้างผลลัพธ์ NULL ขึ้นอยู่กับการทำงานของ SQL ตัวอย่างเช่นสมมติว่า A เป็นโมฆะ: ตัวดำเนินการเลขคณิต Operators เปรียบเทียบ นี่เป็นเพียงตัวอย่างบางส่วนของผู้ประกอบการที่จะ เสมอ return NULL ถ้าโอเปอรแรนดหนึ่งมีคา NULL แบบสอบถามที่ซับซ้อนมากขึ้นมีอยู่และทั้งหมดมีความซับซ้อนโดยค่า NULL จุดบ้านคือถ้าคุณให้ค่า NULL ในฐานข้อมูลของคุณเข้าใจความหมายและวางแผนสำหรับพวกเขา นั่นเป็นโมฆะสั้น!เป็น NULL หรือ NOT NULL?
InventoryID ชิ้น ปริมาณ 3 ลูกพลัม
ใช้งาน NULLs