MYSQL NULL值特性

NULL是一種「沒有類型」的值,一般表示「無值」,「未知值」,「缺失值」,「超界」,「不在其中」等,咱們在平常運用中很容易和NULL字符串混淆,這裏大體整理了下NULL值的一些特性,以便可以正確使用NULL值。mysql

1,建立表時字段時若未添加默認值,則默認爲NULL值sql

 

2,NULL值和NULL字符串的區別函數

1)NULL值不區分大小寫,查詢時都顯示爲大寫NULL,而NULL字符串則顯示爲插入時候的大小寫,查詢的時候根據字符集是否區分大小寫篩選,或者經過語句級的collate或binary指定是否區分大小寫。spa

2)NULL字符串能夠看成普通字符串進行處理,而NULL值的判斷只有is null和 is not null,見第5點3d

3,插入數據時若不指定值,若是沒其它默認值,會用默認值NULLblog

 

4,當插入大寫NULL字符時,就很難區別NULL是NULL值仍是NULL字符串了,這時須要用到NULL值的判斷,NULL值的判斷只有is NULL和is not NULL字符串

 

經過肉眼很難區別,這裏經過NULL值的判斷,能夠看到id2爲NULL值的只有3行,非NULL值的有7行,而爲NULL字符串的有4行im

 

5,SQL裏面對NULL值的處理函數有isnull(expr)(返回is NULL的邏輯判斷結果)和ifnull(expr1,expr2)(若是expr1 is null則返回expr2,不然返回expr1)d3

 

6,和NULL值的比較運算和算術運算,結果仍爲NULL值,可是<=>運算符時,NULL<=>NULL爲真數據

 

7,和NULL值的邏輯運算,is NULL運算只有null is null爲真返回數字1,is not NULL運算只有 null is not null爲假返回數字0

 

8,mysql會把單獨的\N(區分大小寫)看成NULL值

 

9,NULL值和空字符’’不同,查詢字段爲空字符時,能夠用等號,不考慮長度,都顯示爲空,可是長度不同

 

 

10,空字符和其餘字符作算術運算時看成0處理,可是當作分母時運算結果爲NULL

 

11,NULL值會被count(字段)函數過濾,可是在count(*)中不會被過濾

 

12,在group by函數中NULL會看成同一個值放在最最小值前

 

13,其餘一些函數中若是有NULL值,返回結果爲NULL,如:

 

相關文章
相關標籤/搜索