溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

mysql中空值與null值的區(qū)別是什么

發(fā)布時間:2021-01-15 14:37:11 來源:億速云 閱讀:190 作者:Leah 欄目:開發(fā)技術(shù)

mysql中空值與null值的區(qū)別是什么?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

建表

create table test (colA varchar(10) not null,colB varchar(10) null);

向test表中插入數(shù)據(jù)

插入colA為null的數(shù)據(jù)

insert into test values (null,1);

此時會報錯,因為colA列不能為null。

插入colB為null的數(shù)據(jù)

insert into test values (1,null);

發(fā)現(xiàn)插入成功。

mysql中空值與null值的區(qū)別是什么

插入都為空的數(shù)據(jù)

insert into test values ('','');

mysql中空值與null值的區(qū)別是什么

插入colA為空的數(shù)據(jù)

insert into test values ('',null);

mysql中空值與null值的區(qū)別是什么

發(fā)現(xiàn)向colA一列插入空值成功,而colB列既可以插入空值,也可以插入NULL值。
總結(jié)一下,定義為NOT NULL的字段只能插入空值,不能插入null值,而NULL字段可以插入空值,也可以插入null值。

插入都不為空的數(shù)據(jù)

insert into test values (1,2);

開始查詢

mysql中空值與null值的區(qū)別是什么
mysql中空值與null值的區(qū)別是什么
mysql中空值與null值的區(qū)別是什么
mysql中空值與null值的區(qū)別是什么

可以發(fā)現(xiàn) is not null 只會過濾為null值的列,而<>會同時過濾空值和null值,所以要根據(jù)實際情況選擇過濾方式。
另外,判斷null值只能用 is null 或 is not null ,不能用 = 或 <>。

特別注意

1、在進行count()統(tǒng)計某列的記錄數(shù)的時候,如果采用的NULL值,會別系統(tǒng)自動忽略掉,但是空值是會進行統(tǒng)計到其中的。

mysql中空值與null值的區(qū)別是什么

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

3、對于MySQL特殊的注意事項,對于timestamp數(shù)據(jù)類型,如果往這個數(shù)據(jù)類型插入的列插入NULL值,則出現(xiàn)的值是當前系統(tǒng)時間。插入空值,則會出現(xiàn) ‘0000-00-00 00:00:00'

4、對于空值的判斷到底是使用is null 還是 = 要根據(jù)實際業(yè)務(wù)來進行區(qū)分。

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

看完上述內(nèi)容,你們掌握mysql中空值與null值的區(qū)別是什么的方法了嗎?如果還想學到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI