MySQL中有空值NULL和空字符串''(兩個單引號中間沒有任何字符)這兩種表示方法。它們在語義上是不同的。
NULL是缺乏任何數據值的標記,表示該屬性不存在或未知。如果一個屬性的值為NULL,數據庫系統通常會忽略它。而空字符串''則是一個字符串類型的數據值,它代表了一個沒有字符的字符串。
-- 例子1:使用NULL CREATE TABLE t1 (id INT, name VARCHAR(10)); INSERT INTO t1 (id, name) VALUES (1, 'John'); INSERT INTO t1 (id) VALUES (2); SELECT * FROM t1; /* | id | name | |----|------| | 1 | John | | 2 | NULL | */
-- 例子2:使用空字符串'' CREATE TABLE t2 (id INT, name VARCHAR(10)); INSERT INTO t2 (id, name) VALUES (1, 'John'); INSERT INTO t2 (id, name) VALUES (2, ''); SELECT * FROM t2; /* | id | name | |----|------| | 1 | John | | 2 | | */
在實際應用中,我們應根據數據的實際情況,選擇使用NULL還是空字符串''。例如,如果我們要記錄一個人的電話號碼,如果該人沒有電話,則使用NULL;如果電話號碼為空,則使用空字符串''。