ใน MySQL สามารถกำหนดค่าเริ่มต้น (Default Value) ของคอลัมน์เป็น NULL ได้โดยใช้คีย์เวิร์ด DEFAULT NULL ในขณะสร้างหรือแก้ไขตาราง ซึ่งจะทำให้คอลัมน์นั้นได้รับค่า NULL อัตโนมัติหากไม่ระบุค่าใน INSERT
ตัวอย่างการใช้งาน
สร้างตารางพร้อมกำหนด DEFAULT NULL:
mysql> CREATE TABLE DemoTable1440 (
-> StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> StudentName VARCHAR(20) DEFAULT NULL,
-> StudentAge INT DEFAULT NULL
-> );
เพิ่มข้อมูลหลายรูปแบบ:
mysql> INSERT INTO DemoTable1440 (StudentName, StudentAge) VALUES ('Chris', 21); -- ระบุครบ
mysql> INSERT INTO DemoTable1440 VALUES (); -- ไม่ระบุค่าเลย
mysql> INSERT INTO DemoTable1440 (StudentName) VALUES ('David'); -- ระบุแค่ชื่อ
mysql> INSERT INTO DemoTable1440 (StudentAge) VALUES (24); -- ระบุแค่อายุ
ผลลัพธ์ (คอลัมน์ที่ไม่ระบุจะเป็น NULL อัตโนมัติ):
mysql> SELECT * FROM DemoTable1440; +-----------+-------------+------------+ | StudentId | StudentName | StudentAge | +-----------+-------------+------------+ | 1 | Chris | 21 | | 2 | NULL | NULL | | 3 | David | NULL | | 4 | NULL | 24 | +-----------+-------------+------------+
คำสั่งที่เกี่ยวข้อง
| คำสั่ง | ตัวอย่าง | คำอธิบาย |
|---|---|---|
| สร้างตารางใหม่ | CREATE TABLE t (col INT DEFAULT NULL) | กำหนดตอนสร้าง |
| เพิ่มคอลัมน์ใหม่ | ALTER TABLE t ADD col INT DEFAULT NULL | เพิ่มคอลัมน์พร้อม Default |
| เปลี่ยน Default คอลัมน์เดิม | ALTER TABLE t ALTER col SET DEFAULT NULL | MySQL 8.0.13+ |
| ลบ Default | ALTER TABLE t ALTER col DROP DEFAULT | MySQL 8.0.13+ |
| ดู Default ปัจจุบัน | SHOW COLUMNS FROM t LIKE 'col' | ดูในคอลัมน์ Default |
NULL vs ค่าว่าง ('') vs 0
| ค่า | ความหมาย | ชนิดข้อมูล |
|---|---|---|
| NULL | ไม่มีค่า / ไม่ทราบค่า | ทุกชนิด |
| '' (Empty String) | สตริงว่าง (มีค่า แต่อย่างว่าง) | VARCHAR, TEXT, CHAR |
| 0 | ศูนย์ (ค่าตัวเลข) | INT, DECIMAL, FLOAT |