欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

1.測(cè)試數(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值不能使用 == 或 != 來比較
# 下面兩種用法都是錯(cuò)誤的
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值,會(huì)導(dǎo)致+ - * /運(yùn)算失效;

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

結(jié)果如下:

在這里插入圖片描述

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

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

結(jié)果如下:

在這里插入圖片描述

3.空格、空值和null,我們應(yīng)該怎么判斷呢?

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

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

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

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

通過上面的分析我們已經(jīng)知道了,當(dāng)表中存在null值,會(huì)導(dǎo)致加、減、乘、除運(yùn)算失效。那么我們?cè)趺刺幚磉@些null值比較好呢?

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

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

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系列關(guān)于NUll值的經(jīng)驗(yàn)總結(jié)分析的詳細(xì)內(nèi)容,更多關(guān)于MySQL中的NUll值的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 如何批量生成MySQL不重復(fù)手機(jī)號(hào)大表實(shí)例代碼

    如何批量生成MySQL不重復(fù)手機(jī)號(hào)大表實(shí)例代碼

    這篇文章主要給大家介紹了關(guān)于如何批量生成MySQL不重復(fù)手機(jī)號(hào)大表的相關(guān)資料,,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • 詳解MySQL 數(shù)據(jù)分組

    詳解MySQL 數(shù)據(jù)分組

    這篇文章主要介紹了MySQL 數(shù)據(jù)分組的相關(guān)資料,幫助大家更好的理解和使用MySQL,感興趣的朋友可以了解下
    2020-12-12
  • mysql中mysql-bin.000001是什么文件可以刪除嗎

    mysql中mysql-bin.000001是什么文件可以刪除嗎

    這篇文章主要介紹了mysql中mysql-bin.000001是什么文件可以刪除嗎,需要的朋友可以參考下
    2019-05-05
  • mysql InnoDB建表時(shí)設(shè)定初始大小的方法

    mysql InnoDB建表時(shí)設(shè)定初始大小的方法

    這篇文章主要介紹了mysql InnoDB建表時(shí)設(shè)定初始大小的方法,需要大家到MYSQL后臺(tái)實(shí)際操作方可以看到效果
    2013-11-11
  • 使用mysql中遇到的幾個(gè)問題

    使用mysql中遇到的幾個(gè)問題

    首先mysql不是可視化的,可以通過命令行進(jìn)行操作,包括創(chuàng)建數(shù)據(jù)庫、表、添加數(shù)據(jù)等等。那豈不是很不方便了嗎?
    2009-07-07
  • MySQL無法創(chuàng)建外鍵的原因及解決方法

    MySQL無法創(chuàng)建外鍵的原因及解決方法

    這篇文章主要介紹了MySQL無法創(chuàng)建外鍵的原因及解決方法,然后在文中給大家及時(shí)了MySQL無法創(chuàng)建外鍵、查詢外鍵的屬性知識(shí),感興趣的朋友一起看看吧
    2017-10-10
  • MySQL拼接字符串函數(shù)GROUP_CONCAT詳解

    MySQL拼接字符串函數(shù)GROUP_CONCAT詳解

    本文給大家詳細(xì)講解了MySQL的拼接字符串函數(shù)GROUP_CONCAT的幾種使用方法以及詳細(xì)示例,有需要的小伙伴可以參考下
    2020-02-02
  • ubuntu?22.04安裝mysql?8.0步驟與避坑指南

    ubuntu?22.04安裝mysql?8.0步驟與避坑指南

    MySQL最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),在WEB應(yīng)用方面MySQL是最好的關(guān)系數(shù)據(jù)庫管理系統(tǒng)應(yīng)用軟件之一,這篇文章主要給大家介紹了關(guān)于ubuntu?22.04安裝mysql?8.0步驟與避坑指南的相關(guān)資料,需要的朋友可以參考下
    2023-12-12
  • mysql入門之1小時(shí)學(xué)會(huì)MySQL基礎(chǔ)

    mysql入門之1小時(shí)學(xué)會(huì)MySQL基礎(chǔ)

    今天剛好看到了SYZ01的這篇mysql入門文章,感覺對(duì)于想學(xué)習(xí)mysql的朋友是個(gè)不錯(cuò)的資料,腳本之家特分享一下,需要的朋友可以參考下
    2018-01-01
  • 服務(wù)器上的mysql實(shí)現(xiàn)讀取sql文件

    服務(wù)器上的mysql實(shí)現(xiàn)讀取sql文件

    這篇文章主要介紹了服務(wù)器上的mysql實(shí)現(xiàn)讀取sql文件方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03

最新評(píng)論