MariaDB - ค่า Null
เมื่อทำงานกับค่า NULL โปรดจำไว้ว่าเป็นค่าที่ไม่รู้จัก ไม่ใช่สตริงว่างหรือศูนย์ซึ่งเป็นค่าที่ถูกต้อง ในการสร้างตารางข้อกำหนดของคอลัมน์อนุญาตให้ตั้งค่าให้ยอมรับค่าว่างหรือปฏิเสธ เพียงใช้คำสั่ง NULL หรือ NOT NULL สิ่งนี้มีแอปพลิเคชันในกรณีที่ข้อมูลบันทึกหายไปเช่นหมายเลข ID
ตัวแปรที่ผู้ใช้กำหนดจะมีค่าเป็น NULL จนกว่าจะมีการกำหนดอย่างชัดเจน พารามิเตอร์รูทีนที่เก็บไว้และตัวแปรโลคัลอนุญาตให้ตั้งค่าเป็น NULL เมื่อตัวแปรโลคัลไม่มีค่าเริ่มต้นจะมีค่าเป็น NULL
NULL ไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่และมีนามแฝงต่อไปนี้ -
- UNKNOWN (ค่าบูลีน)
- \N
ตัวดำเนินการ NULL
ไม่สามารถใช้ตัวดำเนินการเปรียบเทียบมาตรฐานกับ NULL (เช่น =,>,> =, <=, <, หรือ! =) เนื่องจากการเปรียบเทียบทั้งหมดด้วยค่า NULL จะส่งคืนค่า NULL ไม่ใช่จริงหรือเท็จ การเปรียบเทียบกับ NULL หรืออาจมีอยู่ต้องใช้ตัวดำเนินการ“ <=>” (NULL-SAFE)
ตัวดำเนินการอื่น ๆ ที่มีอยู่ ได้แก่ -
IS NULL - ทดสอบค่า NULL
ไม่เป็นโมฆะ - เป็นการยืนยันว่าไม่มีค่า NULL
ISNULL - ส่งคืนค่า 1 เมื่อพบค่า NULL และ 0 หากไม่มี
COALESCE - ส่งคืนค่าที่ไม่ใช่ NULL แรกของรายการหรือส่งกลับค่า NULL หากไม่มีค่าหนึ่ง
การเรียงลำดับค่า NULL
ในการดำเนินการเรียงลำดับค่า NULL จะมีค่าต่ำสุดดังนั้นลำดับ DESC จึงให้ผลลัพธ์เป็นค่า NULL ที่ด้านล่าง MariaDB อนุญาตให้ตั้งค่าที่สูงขึ้นสำหรับค่า NULL
มีสองวิธีในการดำเนินการดังที่แสดงด้านล่าง -
SELECT column1 FROM product_tbl ORDER BY ISNULL(column1), column1;
อีกทางหนึ่ง -
SELECT column1 FROM product_tbl ORDER BY IF(column1 IS NULL, 0, 1), column1 DESC;
ฟังก์ชัน NULL
โดยทั่วไปฟังก์ชันจะแสดงผลเป็น NULL เมื่อพารามิเตอร์ใด ๆ เป็นโมฆะ อย่างไรก็ตามมีฟังก์ชันที่ออกแบบมาโดยเฉพาะสำหรับการจัดการค่า NULL พวกเขาคือ -
IFNULL()- ถ้านิพจน์แรกไม่ใช่ NULL มันจะส่งกลับ เมื่อประเมินเป็น NULL จะส่งกลับนิพจน์ที่สอง
NULLIF() - ส่งคืนค่า NULL เมื่อนิพจน์ที่เปรียบเทียบมีค่าเท่ากันถ้าไม่คืนค่านิพจน์แรก
ฟังก์ชันเช่น SUM และ AVG จะละเว้นค่า NULL
การแทรกค่า NULL
ในการแทรกค่า NULL ในคอลัมน์ที่ประกาศว่าไม่เป็นโมฆะจะมีข้อผิดพลาดเกิดขึ้น ในโหมด SQL เริ่มต้นคอลัมน์ NOT NULL จะแทรกค่าเริ่มต้นตามชนิดข้อมูลแทน
เมื่อฟิลด์เป็น TIMESTAMP, AUTO_INCREMENT หรือคอลัมน์เสมือน MariaDB จะจัดการค่า NULL ที่แตกต่างกัน การแทรกในคอลัมน์ AUTO_INCREMENT ทำให้หมายเลขถัดไปในลำดับแทรกเข้าที่ ในช่อง TIMESTAMP MariaDB จะกำหนดเวลาประทับปัจจุบันแทน ในคอลัมน์เสมือนหัวข้อที่กล่าวถึงในบทช่วยสอนนี้จะมีการกำหนดค่าเริ่มต้น
ดัชนี UNIQUE สามารถเก็บค่า NULL ได้หลายค่าอย่างไรก็ตามคีย์หลักไม่สามารถเป็น NULL ได้
ค่า NULL และคำสั่ง Alter
เมื่อคุณใช้คำสั่ง ALTER เพื่อแก้ไขคอลัมน์ในกรณีที่ไม่มีข้อมูลจำเพาะ NULL MariaDB จะกำหนดค่าโดยอัตโนมัติ