古詩詞大全網 - 成語查詢 - MySQL 中NULL和空值的區別

MySQL 中NULL和空值的區別

"空值"是對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值的記錄都予以輸出