MySQL中的NULL代表一個缺失的值或未知的值。
CREATE TABLE student ( id INT PRIMARY KEY, name VARCHAR(50), age INT, grade FLOAT, address VARCHAR(100) ); INSERT INTO student VALUES (1, 'Tom', 18, NULL, 'New York'); INSERT INTO student VALUES (2, 'Jack', NULL, 86.5, 'Paris'); INSERT INTO student VALUES (3, 'Maria', 21, 92.3, NULL);
在上面的表格中,我們可以看到有些列的值為NULL。在這種情況下,NULL代表這個值不存在,或者尚未定義。比如,第一行的學生沒有成績,第二行的學生沒有年齡,第三行的學生沒有地址。
需要注意的是,NULL不同于空字符串,空字符串代表一個空字符串,而NULL代表沒有值。
SELECT * FROM student WHERE grade=NULL;
上面的語句并不能查找到沒有成績的學生,因為在MySQL中,NULL的比較是特殊的,應該使用IS NULL來判斷。
SELECT * FROM student WHERE grade IS NULL;
上面的語句可以查找到沒有成績的學生。
在使用MySQL時,需要注意NULL的特殊性,避免缺失或未知的值給系統帶來的不確定性。