MySQL null和空值''的區別


實際上 mysql 有兩種空值。一種是空值 ''(remark字段那種,注意它不是空格),一種是null值(operate_detail字段)。mysql

 

空值('')是不佔用空間的,sql

MySQL中的NULL實際上是佔用空間的。官方文檔說明:函數

「NULL columns require additional space in the row to record whether their values are NULL. For MyISAM tables, each NULL column takes one bit extra, rounded up to the nearest byte.」ui

 

長度驗證:注意空值的''之間是沒有空格的。spa

mysql> select length(''),length(null),length(' ');rest

+------------+--------------+--------------+rem

| length('') | length(null) | length(' ') |文檔

+------------+--------------+--------------+it

| 0 | NULL | 2 |io

+------------+--------------+--------------+

 

注意事項:

1:在進行count()統計某列的記錄數的時候,若是採用的NULL值,會別系統自動忽略掉,可是空值是會進行統計到其中的。

2: 判斷NULL 用IS NULL 或者 is not null,SQL 語句函數中可使用ifnull()函數來進行處理,判斷空字符用=''或者 <>''來進行處理

3: 對於MySQL特殊的注意事項,對於timestamp數據類型,若是往這個數據類型插入的列插入NULL值,則出現的值是當前系統時間。插入空值,則會出現 '0000-00-00 00:00:00'

4:對於空值的判斷究竟是使用is null 仍是 =''要根據實際業務來進行區分。

相關文章
相關標籤/搜索