黄视频网站在线免费观看-黄视频网站在线看-黄视频网站在线观看-黄视频网站免费看-黄视频网站免费观看-黄视频网站免费

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > is NULL和= NULL,is not NULL和!= NULL有什么區(qū)別?

is NULL和= NULL,is not NULL和!= NULL有什么區(qū)別?

來源:千鋒教育
發(fā)布人:xqq
時間: 2023-10-13 07:17:54 1697152674

一、is NULL和= NULL的區(qū)別

在 SQL 中,is NULL 用來判斷一個值是否為 NULL,它是一個布爾表達式,當判斷對象為 NULL 時,返回 TRUE;否則返回 FALSE。例如:

SELECT * FROM mytable WHERE mycolumn IS NULL;

這條語句將會查詢 mytable 表中 mycolumn 列值為 NULL 的行。

而 = NULL 則不同,因為在 SQL 中,NULL 不是一個常量,而是一個未知的值。因此,當使用 = 操作符判斷某個值和 NULL 是否相等時,結果始終為 UNKNOWN。例如:

SELECT * FROM mytable WHERE mycolumn = NULL;

這條語句將返回空集,因為 mycolumn 列中的值無法確定是否等于 NULL。

因此,在 SQL 中,應該使用 is NULL 來判斷一個值是否為 NULL。

二、is not NULL和!= NULL的區(qū)別

在 SQL 中,is not NULL 是一個布爾表達式,當判斷對象不為 NULL 時,返回 TRUE;否則返回 FALSE。例如:

SELECT * FROM mytable WHERE mycolumn IS NOT NULL;

這條語句將會查詢 mytable 表中 mycolumn 列值不為 NULL 的行。

而 != NULL 則和 = NULL 一樣,因為 NULL 不是一個常量,而是一個未知的值。因此,當使用 != 操作符判斷某個值和 NULL 是否不相等時,結果也始終為 UNKNOWN。例如:

SELECT * FROM mytable WHERE mycolumn != NULL;

這條語句將返回空集,因為 mycolumn 列中的值無法確定是否不等于 NULL。

因此,在 SQL 中,應該使用 is not NULL 來判斷一個值是否不為 NULL。

三、SQL語言NULL值詳解

1、簡介

NULL 值代表遺漏的未知數(shù)據(jù)。默認地,表的列可以存放 NULL 值。如果表中的某個列是可選的,那么我們可以在不向該列添加值的情況下插入新記錄或更新已有的記錄。這意味著該字段將以 NULL 值保存。NULL 值的處理方式與其他值不同。NULL 用作未知的或不適用的值的占位符。

注意:無法比較 NULL 和 0;它們是不等價的。

2、特點

null來表示未知和不確定:null 在計算機和編程世界中表示的是未知,不確定。雖然中文翻譯為“空”, 但此空(null)非彼空(empty)。null表示的是一種未知狀態(tài),未來狀態(tài),比如小明兜里有多少錢我不清楚,但也不能肯定為0,這時在計算機中就使用null來表示未知和不確定。null不支持大小/相等判斷:null表示的是什么都沒有,它與空字符串、0 這些是不等價的,是不能用于比較的! 如: 0 = null 、null = ” 、null>3、null!=’hehe’、null<10、age not in (10,20,null)、a!=’null’得到的結果為 false。

正因為以上原因,要少用null。一方面不利于代碼的可讀性和可維護性,特別是強類型語言,查詢 INT 值,結果得到一個 NULL,程序可能會奔潰…如果要兼容這些情況程序往往需要多做很多操作來兜底。另一方面若所在列存在 null值,會影響 count()、 != 、null + 1 等查詢、統(tǒng)計、運算情景的結果。

3、處理

請看下面的 “Persons” 表:

假如 “Persons” 表中的 “Address” 列是可選的。這意味著如果在 “Address” 列插入一條不帶值的記錄,”Address” 列會使用 NULL 值保存。那么我們?nèi)绾螠y試 NULL 值呢?無法使用比較運算符來測試 NULL 值,比如 =、< 或 <>。我們必須使用 IS NULL 和 IS NOT NULL 操作符。

4、三元邏輯

一個 SQL 語句中 WHERE 子句有三種不同的結果:

true(會返回數(shù)據(jù))false(不會返回數(shù)據(jù))NULL(「未知」也不會返回數(shù)據(jù))

好了,那既然 false 和 NULL 都不會返回數(shù)據(jù),那干嘛還要關注它們的區(qū)別呢?當遇上 NOT() 的時候就有問題了。比如下面這個語句,1 肯定等于 1,顯然經(jīng)過 NOT() 后就會變成 false,那就永遠不會返回數(shù)據(jù):

SELECT * FROM SOME_TABLEWHERE NOT(1 = 1)

下面這句呢,顯然 NOT() 后會得到 true,當然會返回數(shù)據(jù):

SELECT * FROM SOME_TABLEWHERE NOT(1 = 0)

但是這句呢:

SELECT * FROM SOME_TABLEWHERE NOT(1 = NULL)

上面這句 1 = NULL 由于數(shù)據(jù)庫不知道 NULL 是什么,「未知」,所以其結果是 NULL。對 NOT() 來說呢,它也不知道 NULL 是什么,該怎么處理,所以也會返回 NULL,所以 WHERE 子句得到的是 NULL,既不是 true 也不是 false 而是 NULL,所以上面這條語句永遠都不會返回數(shù)據(jù)。

那么好了,看下面這兩條語句,雖然是相反的條件,但結果一致:都不會查詢到數(shù)據(jù)。

SELECT * FROM SOME_TABLE
WHERE NOT(1 = NULL)
SELECT * FROM SOME_TABLE
WHERE 1 = NULL

5、NOT IN 和 NULL

NOT IN 也是非常值得注意的。比如下面這個 SQL,1 顯然在后面的列表中,WHERE 就會得到 true,那么就會查詢到數(shù)據(jù):

SELECT * FROM SOME_TABLE
WHERE 1 IN (1, 2, 3, 4, NULL)

再看下面這句,顯然 1 是在數(shù)組中的,那么 NOT IN 就會得到 false,那么就不能查詢到數(shù)據(jù):

SELECT * FROM SOME_TABLE
WHERE 1 NOT IN (1, 2, 3, 4, NULL)

再看這個:

SELECT * FROM SOME_TABLE
WHERE 5 NOT IN (1, 2, 3, 4, NULL)

先說答案:這句語句不能查詢到數(shù)據(jù)。5 在不在后面的列表中呢?數(shù)據(jù)庫是不知道的,因為里面有個 NULL,誰知道 5 等不等于 NULL(「未知」),不知道,所以 5 NOT IN (1, 2, 3, 4, NULL) 得到的是 NULL,所以查詢不到數(shù)據(jù)。

延伸閱讀1:SQL語言NULL值相關函數(shù)

ifnull():兩參數(shù),若名列前茅個參數(shù)不為空,返回該字段,若為空,返回第二個參數(shù)。coalesce():多參數(shù),返回名列前茅個非空值。nullif():該函數(shù)接受兩個參數(shù),相等則返回null,不相等則返回名列前茅個參數(shù)。
聲明:本站稿件版權均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內(nèi)將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
Kettle連接MySQL為什么會報錯?

一、Kettle連接MySQL會報錯的原因1、驅(qū)動程序缺失Kettle需要使用MySQL的JDBC驅(qū)動程序來連接MySQL數(shù)據(jù)庫。如果沒有正確配置或提供JDBC驅(qū)動程序,...詳情>>

2023-10-13 08:53:41
wait()、sleep()、join()和yield()區(qū)別是什么?

一、wait()wait()方法是Object類中的方法,主要用于線程間的同步和協(xié)作。當一個線程調(diào)用某個對象的wait()方法時,它會釋放該對象的鎖,并進入等...詳情>>

2023-10-13 08:45:29
什么是Caché數(shù)據(jù)庫?

一、對象訪問通過對象訪問,開發(fā)人員可以使用面向?qū)ο蟮木幊陶Z言(如Java、C#等)直接操作數(shù)據(jù)庫中的對象。這種方式提供了更加直觀和便捷的數(shù)據(jù)...詳情>>

2023-10-13 08:42:01
mysql group commit為什么要保證binlog和redo log提交的順序一致?

一、為什么要保證binlog和redo log提交的順序一致MySQL為了保證master和slave的數(shù)據(jù)一致性,就必須保證binlog和InnoDB redo日志的一致性(因為...詳情>>

2023-10-13 08:25:24
synchronized鎖的升級原理是什么,以及各個鎖的狀態(tài)對比?

一、synchronized鎖的基本原理synchronized是Java中用于實現(xiàn)線程安全的關鍵字,它可以應用于方法或代碼塊。當一個線程進入synchronized代碼塊時...詳情>>

2023-10-13 08:14:11
国产国产人免费视频成69堂| 日韩一级黄色大片| 日日日夜夜操| 天天做人人爱夜夜爽2020毛片| 欧美电影免费看大全| 日韩在线观看免费完整版视频| 97视频免费在线观看| 久久精品道一区二区三区| 国产韩国精品一区二区三区| 99色视频| 精品毛片视频| 九九精品影院| 成人高清视频免费观看| 欧美国产日韩精品| 国产一级生活片| 成人免费观看网欧美片| 日本特黄特色aaa大片免费| 欧美电影免费看大全| 国产91丝袜高跟系列| 美女免费精品高清毛片在线视| 欧美激情一区二区三区视频| 国产视频一区二区三区四区| 国产福利免费观看| 美国一区二区三区| 欧美国产日韩久久久| 国产精品免费久久| 四虎影视精品永久免费网站| 亚洲精品影院| 色综合久久天天综线观看| 欧美大片aaaa一级毛片| 免费国产在线观看不卡| 亚洲精品影院久久久久久| 黄色短视屏| 香蕉视频亚洲一级| 久久久久久久男人的天堂| 免费一级片在线| 国产精品自拍亚洲| 色综合久久天天综合| 成人免费高清视频| 日韩中文字幕一区| 日日夜夜婷婷| 欧美日本免费| 黄视频网站在线观看| 青青青草影院| 精品视频免费观看| 天天做日日爱夜夜爽| 99热视热频这里只有精品| 国产一区二区精品久久| 日韩一级精品视频在线观看| 亚久久伊人精品青青草原2020| 黄视频网站免费观看| 亚欧视频在线| 国产成人精品综合在线| 欧美大片aaaa一级毛片| 99久久精品国产国产毛片| 精品视频一区二区三区| 欧美激情一区二区三区视频| 欧美另类videosbestsex| 一级片免费在线观看视频| 一级毛片看真人在线视频| 香蕉视频久久| 91麻豆国产| 可以免费看毛片的网站| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 久久成人综合网| 国产成人精品综合| 亚欧乱色一区二区三区| 色综合久久久久综合体桃花网| 日本特黄一级| 999精品影视在线观看| 91麻豆爱豆果冻天美星空| 毛片的网站| 一本高清在线| 国产一级生活片| 国产视频在线免费观看| 亚洲女初尝黑人巨高清在线观看| 韩国三级视频网站| 一级女性全黄久久生活片| 日韩在线观看网站| 国产一区二区精品| 精品久久久久久中文字幕2017| 久久精品道一区二区三区| 国产麻豆精品视频| 精品国产亚一区二区三区| 黄视频网站免费看| 一级毛片视频免费| 欧美大片aaaa一级毛片| 国产不卡在线看| 久久国产一久久高清| 日韩免费片| 午夜在线观看视频免费 成人| 香蕉视频亚洲一级| 99色视频在线| 超级乱淫伦动漫| 欧美大片aaaa一级毛片| 欧美另类videosbestsex久久| 日韩欧美一二三区| 久久福利影视| 黄视频网站免费观看| 青青青草视频在线观看| 日日夜夜婷婷| 国产伦理精品| 成人a大片在线观看| 999久久狠狠免费精品| 久久国产一久久高清| 四虎影视久久久| 国产不卡在线看| 黄视频网站免费看| 一本伊大人香蕉高清在线观看| 欧美激情一区二区三区在线播放 | 天天做日日爱| 精品在线免费播放| 午夜激情视频在线观看| 精品久久久久久中文| 日本伦理黄色大片在线观看网站| 久久国产影院| 国产麻豆精品免费视频| 日韩专区一区| 欧美激情一区二区三区视频高清| 天天色成人| 久草免费在线视频| 亚洲天堂一区二区三区四区| 精品在线观看一区| 毛片高清| 欧美另类videosbestsex| 成人免费观看网欧美片| 免费国产在线观看| 国产欧美精品| 久久国产精品永久免费网站| 日本免费乱理伦片在线观看2018| 国产精品12| 一级女性全黄生活片免费| 日韩在线观看免费| 999久久久免费精品国产牛牛| 日韩免费片| 精品视频免费在线| 日本特黄特黄aaaaa大片| 亚洲女初尝黑人巨高清在线观看| 四虎影视精品永久免费网站| 99久久精品国产麻豆| 九九久久99| 可以免费看污视频的网站| 国产精品1024在线永久免费 | 亚洲精品中文一区不卡| 日韩中文字幕一区| 精品视频在线观看免费| 欧美日本国产| 天天做日日爱| 免费毛片播放| 中文字幕一区二区三区 精品| 欧美a级v片不卡在线观看| 国产麻豆精品高清在线播放| 91麻豆国产| 青青久久精品| 日本伦理黄色大片在线观看网站| 中文字幕97| 麻豆污视频| 日本免费乱人伦在线观看| 国产国产人免费视频成69堂| 亚洲爆爽| 九九热国产视频| 亚欧乱色一区二区三区| 亚洲天堂在线播放| 亚洲wwwwww| 精品久久久久久中文字幕2017| 天天做人人爱夜夜爽2020| 精品视频在线看| 国产a免费观看| 中文字幕97| 欧美电影免费看大全| 天天做日日爱夜夜爽| 国产网站免费在线观看| 一级片免费在线观看视频| 久久精品免视看国产明星 | 精品国产一区二区三区久| 麻豆污视频| 日本免费乱理伦片在线观看2018| 精品久久久久久中文字幕2017| 色综合久久天天综合绕观看| 免费一级片网站| 精品国产香蕉伊思人在线又爽又黄| 欧美激情一区二区三区视频 | a级黄色毛片免费播放视频| 日韩专区亚洲综合久久| 日本免费乱理伦片在线观看2018| 欧美a免费| 国产伦精品一区二区三区在线观看 | 999久久66久6只有精品| 二级片在线观看| 91麻豆精品国产自产在线 | 国产91精品露脸国语对白| 欧美国产日韩一区二区三区| 二级片在线观看| 国产不卡福利| 精品视频在线观看免费| 亚欧成人乱码一区二区| 九九国产| 精品国产一级毛片| 国产韩国精品一区二区三区| 久久成人综合网|