mysql中空值和null值的區別及處理方法總結


原帖:https://blog.csdn.net/weixin_42214393/article/details/80463912

 

一、首先就是在概念上的不同:

      1. 空值不占空間

      2. null值占空間。

      打個比喻就是空值表示一個杯子是真空狀態,什么都沒有,而null值是杯子中有空氣。

 

二、定義為NOT NULL的字段只能插入空值,不能插入null值,而NULL字段可以插入空值,也可以插入null值。

 

三、 is not null 只會過濾為null值的列,而   <> ' '  會同時過濾空值和null值,所以要根據實際情況選擇過濾方式。另外,判斷null值只能用 is null 或 is not null ,不能用 = 或 <>。

 

四、注意事項: 

      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 還是 =”要根據實際業務來進行區分。

      5. 當使用ORDER BY時,首先呈現NULL值。如果你用DESC以降序排序,NULL值最后顯示。當使用GROUP BY時,所有的NULL值被認為是相等的,故只顯示一行。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM