"空值"是對null值的中文叫法,兩者同指壹個東西。
我想樓主是想弄清楚null(空值)與零長度字符串''(或稱為空字符串)之間的區別。
在代碼裏"零長度字符串"用壹對沒有間隔的英文引號''表示,它的數據類型是明確的即屬於字符型,存儲"零長度字符串"是要占用物理磁盤空間的;
而null值其數據類型是未知的,它不會占用物理磁盤空間。
在不存在約束限制的情況我們可以將Null值插入任何數據類型的字段裏,而零長度字符串''只能插入到字符型數據類型字段中,插入其它類型字段會報錯。
我們通過實測看看null(空值)與零長度字符串''(或稱為空字符長)之間的區別:
1)輸出所有的記錄
select * from students;
註意:此例輸出源表中的全部記錄,含null(空值)和零長度字符串''.
2)輸出電話為Null(空值)的記錄
select * from students where phone is null;
註意:此例只輸出含Null(空值)的記錄
3)輸出電話為零長度字符串的記錄
select * from students where phone='';
註意:此例只輸出含零長度字符串的記錄。
4)輸出電話不是零長度字符串的記錄
select * from students where phone<>'';
註意:此例MySQL的處理方式有些特別,連含Null值得記錄也排除掉了,這與MSSQL的處理方式有點不壹致。
5)輸出電話不為空的記錄
select * from students where phone is not null;
註意:此例只要不含Null值的記錄都予以輸出