日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql group by 区分null 值和非null_你知道mysql中空值和null值的区别吗

發布時間:2023/12/18 数据库 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql group by 区分null 值和非null_你知道mysql中空值和null值的区别吗 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

最近發現帶的小伙伴寫sql對于空值的判斷方法不正確,導致程序里面的數據產生錯誤,在此進行一下整理,方便大家以后正確的判斷空值。以下帶來示例給大家進行講解。

建表

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

向test表中插入數據

插入colA為null的數據

insert into test values (null,1);

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

插入colB為null的數據

insert into test values (1,null);

發現插入成功。

插入都為空的數據

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

插入colA為空的數據

insert into test values ('',null);

發現向colA一列插入空值成功,而colB列既可以插入空值,也可以插入NULL值。

總結一下,定義為NOT NULL的字段只能插入空值,不能插入null值,而NULL字段可以插入空值,也可以插入null值。

插入都不為空的數據

insert into test values (1,2);

開始查詢

可以發現 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值被認為是相等的,故只顯示一行。

總結

總結

以上是生活随笔為你收集整理的mysql group by 区分null 值和非null_你知道mysql中空值和null值的区别吗的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。