最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL系列關于NUll值的經(jīng)驗總結(jié)分析教程

 更新時間:2021年10月26日 11:57:44   作者:數(shù)據(jù)分析與統(tǒng)計學之美  
這篇文章主要為大家介紹了MySQL系列關于NUll值的一些經(jīng)驗總結(jié)分析,關于null值的影響作用以及為什么會出現(xiàn)null值的原因等等問題的解析

1.測試數(shù)據(jù)

create table test_null (
    id int,
    name varchar(20),
    chinese int,
    math int,
    english int
) charset=utf8;

insert into test_null 
values
(1,null,80,70,68),
(2,'張三',60,null,null),
(3,'李四',null,90,80),
(4,'王五',90,60,75),
(5,null,null,50,95);

結(jié)果如下:

在這里插入圖片描述

2.null值帶給我們的不便影響

1)過濾有所不同,只能使用is null或者is not null;

# null值不能使用 == 或 != 來比較
# 下面兩種用法都是錯誤的
select *
from test_null
where name == null;

select *
from test_null
where name != null;

# null值一般使用 is null 或 is not null 來比較
# 下面兩種用法才是正確的
select *
from test_null
where name is null;

select *
from test_null
where name is not null;

2)出現(xiàn)null值,會導致+ - * /運算失效;

select 	
	*,(chinese+math+english) as 總分
from test_null;

結(jié)果如下:

在這里插入圖片描述

3)null值對聚合函數(shù)無影響,聚合函數(shù)會直接忽略null值;

select 
    sum(chinese) 語文總分,
    sum(math) 數(shù)學總分,
    sum(english) 外語總分
from test_null

結(jié)果如下:

在這里插入圖片描述

3.空格、空值和null,我們應該怎么判斷呢?

1)空格、空值和null的區(qū)別

用一個形象的比喻來說明這三者的區(qū)別。首先空格很好理解,一個空字符串嗎,占據(jù)一定的空間大小。不好理解的其實是空值和null,空值相當于一個杯子是真空狀態(tài)的,什么也沒有,null表示的杯子中有空氣。

MySQL中,null是未知的,且占用空間的。null使得索引、索引統(tǒng)計和值都更加復雜,并且影響優(yōu)化器的判斷??罩?code>('')是不占用空間的,注意空值的''之間是沒有空格的。在進行count()統(tǒng)計某一列記錄數(shù)的時候,如果存在null值,會被系統(tǒng)自動忽略掉,但是空值會被統(tǒng)計到其中。判斷null使用的是is nullis not null,但判斷空字符使用的是= ,!=, <>來進行處理。對于timestamp數(shù)據(jù)類型,如果插入null值,則出現(xiàn)的值是當前系統(tǒng)時間。插入空值,則會出現(xiàn)0000-00-00 00:00:00。對于已經(jīng)創(chuàng)建好的表,普通的列將null修改為not null帶來的性能提升較小,所以調(diào)優(yōu)時候沒有比要注意。

2)出現(xiàn)了null值,我應該怎么辦?

通過上面的分析我們已經(jīng)知道了,當表中存在null值,會導致加、減、乘、除運算失效。那么我們怎么處理這些null值比較好呢?

第一種方式:直接使用is not null將這些null值過濾掉,但是這樣會將其它非缺失值的字段過濾掉,造成數(shù)據(jù)的浪費。

第二種方式:也是我們推薦的方式,我們使用函數(shù)進行缺失值的填充。

ifnull()和coalesce()函數(shù)的使用:

select 
    	id,
    	coalesce(name,'無名氏') name,
    	coalesce(chinese,0) chinese,
    	ifnull(math,0) math,
    	ifnull(english,0) english
from test_null;

結(jié)果如下:

在這里插入圖片描述

以上就是MySQL系列關于NUll值的經(jīng)驗總結(jié)分析的詳細內(nèi)容,更多關于MySQL中的NUll值的資料請關注腳本之家其它相關文章!

相關文章

  • MySQL批量插入和唯一索引問題的解決方法

    MySQL批量插入和唯一索引問題的解決方法

    這篇文章主要給大家介紹了關于MySQL批量插入和唯一索引問題的解決方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用MySQL具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-04-04
  • 教你使用MySQL Shell連接數(shù)據(jù)庫的方法

    教你使用MySQL Shell連接數(shù)據(jù)庫的方法

    在有些情況下我們需要使用命令行方式連接MySQL數(shù)據(jù)庫,這時可以使用MySQL官方提供的命令行工具MySQL Shell,今天通過本文給大家介紹下mysql Shell連接數(shù)據(jù)庫的方法,感興趣的朋友一起看看吧
    2022-04-04
  • MySQL刪除表的三種方式(小結(jié))

    MySQL刪除表的三種方式(小結(jié))

    這篇文章主要介紹了MySQL刪除表的三種方式(小結(jié)),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • MySQL中導出用戶權限設置的腳本分享

    MySQL中導出用戶權限設置的腳本分享

    這篇文章主要介紹了MySQL中導出用戶權限設置的腳本分享,本文通過導出mysql.user表中數(shù)據(jù)實現(xiàn)導出權限設置,需要的朋友可以參考下
    2014-10-10
  • windows 下忘記mysql root密碼的更改方法

    windows 下忘記mysql root密碼的更改方法

    mysql數(shù)據(jù)庫忘記了root密碼是件很痛苦的事,本文介紹如何解決windows環(huán)境下mysql服務器忘記root密碼的解決方法,需要的朋友可以參考下
    2016-10-10
  • 最新評論

    彰武县| 廊坊市| 云霄县| 田阳县| 东至县| 永登县| 东乌| 乐至县| 华池县| 阿拉善左旗| 桦川县| 滨州市| 清苑县| 泰兴市| 淅川县| 辽阳市| 晋中市| 太保市| 平顺县| 英超| 汉沽区| 淮阳县| 芒康县| 从江县| 辽宁省| 凉城县| 贡嘎县| 司法| 富顺县| 澎湖县| 昆山市| 咸丰县| 曲阜市| 西和县| 蒲江县| 镇巴县| 饶平县| 横峰县| 宁明县| 灵台县| 邢台县|