日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

區分MySQL中的空值(null)和空字符('')

瀏覽:30日期:2023-10-10 18:08:06

日常開發中,一般都會涉及到數據庫增刪改查,那么不可避免會遇到Mysql中的NULL和空字符。空字符(’’)和空值(null)表面上看都是空,其實存在一些差異:

定義:

空值(NULL)的長度是NULL,不確定占用了多少存儲空間,但是占用存儲空間的 空字符串(’’)的長度是0,是不占用空間的

通俗的講:

空字符串(’’)就像是一個真空轉態杯子,什么都沒有。空值(NULL)就像是一個裝滿空氣的杯子,含有東西。二者雖然看起來都是空的、透明的,但是有著本質的區別。

區別:

在進行count()統計某列時候,如果用null值系統會自動忽略掉,但是空字符會進行統計。不過count(*)會被優化,直接返回總行數,包括null值。 判斷null用is null或is not null,SQL可以使用ifnull()函數進行處理;判斷空字符用=’’或者!=’’進行處理。 對于timestamp數據類型,插入null值會是當前系統時間;插入空字符,則出現0000-00-00 00:00:00

實例:

新建一張表test_ab,并插入4行數據。

CREATE TABLE test_ab (id int,col_a varchar(128),col_b varchar(128) not null);insert test_ab(id,col_a,col_b) values(1,1,1);insert test_ab(id,col_a,col_b) values(2,’’,’’);insert test_ab(id,col_a,col_b) values(3,null,’’);insert test_ab(id,col_a,col_b) values(4,null,1);mysql> select * from test_ab;+------+-------+-------+| id | col_a | col_b |+------+-------+-------+| 1 | 1 | 1 || 2 | | || 3 | NULL | || 4 | NULL | 1 |+------+-------+-------+4 rows in set (0.00 sec) 首先比較一下,空字符(’’)和空值(null)查詢方式的不同:

mysql> select * from test_ab where col_a = ’’;+------+-------+-------+| id | col_a | col_b |+------+-------+-------+| 2 | | |+------+-------+-------+1 row in set (0.00 sec)mysql> select * from test_ab where col_a is null;+------+-------+-------+| id | col_a | col_b |+------+-------+-------+| 3 | NULL | || 4 | NULL | 1 |+------+-------+-------+2 rows in set (0.00 sec)

由此可見,null和’’的查詢方式不同。而且比較字符 ‘=’’>’ ‘<’ ‘<>’不能用于查詢null,如果需要查詢空值(null),需使用is null 和is not null。

第二種比較,參與運算

mysql> select col_a+1 from test_ab where id = 4;+---------+| col_a+1 |+---------+| NULL |+---------+1 row in set (0.00 sec)mysql> select col_b+1 from test_ab where id = 4;+---------+| col_b+1 |+---------+| 2 |+---------+1 row in set (0.00 sec)

由此可見,空值(null)不能參與任何計算,因為空值參與任何計算都為空。所以,當程序業務中存在計算的時候,需要特別注意。如果非要參與計算,需使用ifnull函數,將null轉換為’’才能正常計算。

第三種比較,統計數量

mysql> select count(col_a) from test_ab;+--------------+| count(col_a) |+--------------+| 2 |+--------------+1 row in set (0.00 sec)mysql> select count(col_b) from test_ab;+--------------+| count(col_b) |+--------------+| 4 |+--------------+1 row in set (0.00 sec)

由此可見,當統計數量的時候。空值(null)并不會被當成有效值去統計。同理,sum()求和的時候,null也不會被統計進來,這樣就能理解,為什么null計算的時候結果為空,而sum()求和的時候結果正常了。

結論:

所以在設置默認值的時候,盡量不要用null當默認值,如果字段是int類型,默認為0;如果是varchar類型,默認值用空字符串(’’)會更好一些。帶有null的默認值還是可以走索引的,只是會影響效率。當然,如果確認該字段不會用到索引的話,也是可以設置為null的。

在設置字段的時候,可以給字段設置為 not null ,因為 not null 這個概念和默認值是不沖突的。我們在設置默認值為(’’)的時候,雖然避免了null的情況,但是可能存在直接給字段賦值為null,這樣數據庫中還是會出現null的情況,所以強烈建議都給字段加上 not null。

類似這樣的:

mysql> alter table test_ab modify `col_b` varchar(128) NOT NULL DEFAULT ’’;Query OK, 0 rows affected (0.00 sec)Records: 0 Duplicates: 0 Warnings: 0mysql> desc test_ab;+-------+--------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+--------------+------+-----+---------+-------+| id | int | YES | | NULL | || col_a | varchar(128) | YES | | NULL | || col_b | varchar(128) | NO | | | |+-------+--------------+------+-----+---------+-------+3 rows in set (0.00 sec)

盡管在存儲空間上,在索引性能上可能并不比空字符差,但是為了避免其身上特殊性,給項目帶來不確定因素,因此建議默認值不要使用 NULL。

以上就是區分MySQL中的空值(null)和空字符(’’)的詳細內容,更多關于MySQL 空值和空字符的資料請關注好吧啦網其它相關文章!

標簽: MySQL 數據庫
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
午夜在线播放视频欧美| 国产精品毛片在线看| 日韩超碰人人爽人人做人人添| 亚洲免费影视| 香蕉国产精品| 亚洲欧美久久久| 欧美黑人巨大videos精品| 国产精品成人一区二区网站软件| 国产精品99一区二区三| 久久亚洲人体| 少妇精品在线| 精品高清久久| 国产精品毛片一区二区在线看| 秋霞影视一区二区三区| 国产精品一国产精品| 日韩中文字幕视频网| 911精品国产| 国产福利一区二区精品秒拍 | 国产精品日本一区二区不卡视频 | 激情综合在线| 丝袜国产日韩另类美女| 国产乱子精品一区二区在线观看| 国产精品一区二区三区av| 国产91欧美| 桃色av一区二区| 鲁大师成人一区二区三区| 日韩成人a**站| 国产精品女主播一区二区三区| 国产人成精品一区二区三| 久久av在线| 久久精品国产99国产| 国产精品日韩久久久| 亚洲四虎影院| 蜜臀av性久久久久蜜臀aⅴ流畅 | 久久久久久色 | 国产精品免费精品自在线观看| 婷婷国产精品| 国产乱码精品一区二区三区亚洲人| 日本欧美一区| 精品国产亚洲日本| 国语对白精品一区二区| 国产欧美日韩影院| 国产精品久久久久蜜臀| 久久99影视| 热三久草你在线| 99久精品视频在线观看视频| 亚洲精品一级| 免费在线日韩av| 国产欧美高清视频在线| 国产在线不卡一区二区三区 | 欧美gv在线| 国产综合视频| 影视先锋久久| 日韩电影免费网站| 日韩午夜在线| 免费不卡在线观看| 欧美亚洲一区二区三区| 丝袜亚洲另类欧美| 国产精品外国| 欧美一区成人| 天堂а√在线最新版中文在线| 成午夜精品一区二区三区软件| 麻豆高清免费国产一区| 美女免费视频一区| 久久亚洲人体| 婷婷亚洲精品| 欧美国产免费| 日韩精品影视| 国产成人精品亚洲线观看| 亚洲一级淫片| 午夜国产一区二区| 久久精品97| 青青草91视频| 日韩激情综合| 国产一卡不卡| 日韩精品一级中文字幕精品视频免费观看 | 欧美日韩国产一区精品一区| 欧美国产中文高清| 99日韩精品| 欧美一区二区三区高清视频| 亚洲bt欧美bt精品777| 久久视频国产| 久久永久免费| 日韩午夜视频在线| 欧美中文字幕一区二区| 国产探花在线精品| 亚洲一区日韩在线| 亚洲福利久久| 日韩久久视频| 日韩一区二区三区在线看| 日韩黄色大片网站| 91午夜精品| 高潮久久久久久久久久久久久久| 国产不卡精品| 久久影视三级福利片| 欧美aaaaaa午夜精品| 日本亚洲最大的色成网站www| 亚洲狼人精品一区二区三区| 视频在线在亚洲| 日韩一区二区在线免费| a日韩av网址| 精品视频黄色| 国产精品视频一区二区三区四蜜臂| 日韩一区二区三区精品| 精品国产午夜| 午夜久久久久| 91精品国产91久久久久久黑人| 首页国产欧美久久| 欧美xxxx性| 国产一级久久| 国产亚洲一区二区三区啪| 久久久久久自在自线| 免费观看日韩电影| 日韩不卡在线观看日韩不卡视频| 麻豆亚洲精品| 国产精品欧美日韩一区| 国产精品密蕾丝视频下载| 国产激情综合| 97国产成人高清在线观看| 久久青青视频| 日韩一区三区| 欧美中文一区二区| 久久国产66| 91精品综合| 综合一区二区三区| 日韩极品在线观看| 国产精品香蕉| 久久国产精品成人免费观看的软件| 成人国产综合| 欧美日韩伊人| 久久精品99国产精品| 麻豆视频久久| 国产不卡精品在线| 久久精品国产99久久| 国产图片一区| 精品视频久久| 狠狠干成人综合网| 蜜臀av性久久久久蜜臀aⅴ流畅 | 福利一区在线| 国产精品欧美一区二区三区不卡| 午夜在线视频一区二区区别| 久久av免费| 亚洲精品系列| 给我免费播放日韩视频| 日韩一区二区久久| 国产精品亚洲欧美日韩一区在线| 亚洲国内精品| 欧美不卡在线| 亚洲精品乱码| 国产亚洲精品美女久久久久久久久久| 国产精品成人一区二区不卡| 久久av一区二区三区| 国产日韩中文在线中文字幕| 欧美日韩第一| 日韩欧美中文字幕在线视频| 日本成人中文字幕| 日韩国产在线不卡视频| 国产午夜久久av| 欧美日本三区| 国产精品久久久久久av公交车| 欧美在线综合| 亚洲一级黄色| 成人久久久久| 久久精品免视看国产成人| 亚洲精一区二区三区| 黄色欧美日韩| 国产无遮挡裸体免费久久| 欧美va天堂在线| 久久超碰99| 视频一区日韩| 亚洲欧美日韩精品一区二区| 亚洲电影在线| 野花国产精品入口| 国产一区二区三区久久久久久久久| 国产精品99久久精品| 综合国产在线| 亚洲国内精品| 免费精品一区| 视频在线在亚洲| 欧美一区三区| 毛片在线网站| 国产精品宾馆| 男人天堂欧美日韩| 亚洲精品在线影院| 国产欧美日韩精品一区二区免费| 日韩视频一区| 欧美.日韩.国产.一区.二区 | 91青青国产在线观看精品| 亚洲免费福利一区| re久久精品视频| 精品亚洲美女网站| 日本中文字幕视频一区| 在线中文字幕播放| 国产成人免费| 免费久久精品| 国产乱码精品一区二区亚洲| 免费视频一区二区三区在线观看| 国产美女撒尿一区二区| 久久一区二区三区喷水| 国产欧美日韩视频在线|