校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 在SQL中該如何處理NULL值

在SQL中該如何處理NULL值

熱門標簽:外呼系統會封嗎 萬利達綜合醫院地圖標注點 股票配資電銷機器人 武漢AI電銷機器人 南京電銷外呼系統哪家好 地圖標注如何弄全套標 實體店地圖標注怎么標 電銷機器人 深圳 在電子版地圖標注要收費嗎

在日常使用數據庫時,你在意過NULL值么?

其實,NULL值在數據庫中是一個很特殊且有趣的存在,下面我們一起來看看吧;

小伙伴想精準查找自己想看的MySQL文章?喏 → MySQL專欄目錄 | 點擊這里

在查詢數據庫時,如果你想知道一個列(例如:用戶注冊年限 USER_AGE)是否為 NULL,SQL 查詢語句該怎么寫呢?

是這樣:

SELECT * FROM TABLE WHERE USER_AGE = NULL

還是這樣?

SELECT * FROM TABLE WHERE USER_AGE IS NULL

當然,正確的寫法應該是第二種(WHERE USER_AGE IS NULL)。

但為什么要這樣寫呢?在進行數據庫數據比較操作時,我們不會使用“IS”關鍵詞,不是嗎?

 

一臉懵逼

例如,如果我們想要知道一個列的值是否等于 1,WHERE 語句是這樣的:

WHERE USER_AGE = 1

那為什么 NULL 值要用 IS 關鍵字呢?為什么要以這種方式來處理 NULL?

因為,在 SQL 中,NULL 表示“未知”。也就是說,NULL 值表示的是“未知”的值。

NULL = 未知;

在大多數數據庫中,NULl 和空字符串是有區別的。

但并不是所有數據庫都這樣,例如,Oracle 就不支持空字符串,它會把空字符串自動轉成 NULL 值。

在其他大多數數據庫里,NULL 值和字符串的處理方式是不一樣的:

  • 空字符("")串雖然表示“沒有值”,但這個值是已知的。
  • NULL 表示 “未知值”,這個值是未知的。

這就好比我問了一個問題:“川建國的小名叫什么?”

有人會回答說:“我不知道川建國的小名是什么”。對于這種情況,可以在數據庫中使用Nickname列來表示川建國的小名,而這一列的值為 NULL。

也有人會回答說:“川建國沒有小名。他的父母沒有給他取小名,大家雖然一直叫他川二狗,但是我知道川建國確實沒有小名”。對于這種情況,Nickname列應該是一個空字符串("")。

Oracle 比較特殊,兩個值都使用 NULL 來表示,而其他大多數數據庫會區分對待。

但只要記住 NULL 表示的是一個未知的值,那么在寫 SQL 查詢語句時就會得心應手。

例如,如果你有一個這樣的查詢語句:

SELECT * FROM SOME_TABLE WHERE 1 = 1

這個查詢會返回所有的行(假設 SOME_TABLE 不是空表),因為表達式“1=1”一定為 true。

如果我這樣寫:

SELECT * FROM SOME_TABLE WHERE 1 = 0

表達式“1=0”是 false,這個查詢語句不會返回任何數據。

但如果我寫成這樣:

SELECT * FROM SOME_TABLE WHERE 1 = NULL

這個時候,數據庫不知道這兩個值(1 和 NULL)是否相等,因此會認定為“NULL”或“未知”,所以它也不會返回任何數據。

  三元邏輯

SQL 查詢語句中的 WHERE 一般會有三種結果:

  • 它可以是 true(這個時候會返回數據);
  • 它可以是 false(這個時候不會返回數據);
  • 它也可以是 NULL 或未知(這個時候也不會返回數據);

你可能會想:“既然這樣,那我為什么要去關心是 false 還是 NULL?它們不是都不會返回數據嗎?”

接下來,我來告訴你在哪些情況下會有問題:我們來看看 NOT( ) 方法。

假設有這樣的一個查詢語句:

SELECT * FROM SOME_TABLE WHERE NOT(1 = 1)

數據庫首先會計算 1=1,這個顯然是 true。

接著,數據庫會應用 NOT() 條件,所以 WHERE 返回 false。

所以,上面的查詢不會返回任何數據。

但如果把語句改成這樣:

SELECT * FROM SOME_TABLE WHERE NOT(1 = 0)


數據庫首先會計算 1=0,這個肯定是 false。

接著,數據庫應用 NOT() 條件,這樣就得到相反的結果,變成了 true。

所以,這個語句會返回數據。

但如果把語句再改成下面這樣呢?

SELECT * FROM SOME_TABLE WHERE NOT(1 = NULL)

數據庫首先計算 1=NULL,它不知道 1 是否等于 NULL,因為它不知道 NULL 的值是什么。

所以,這個計算不會返回 true,也不會返回 false,它會返回一個 NULL。

接下來,NOT() 會繼續解析上一個計算返回的結果。

當 NOT() 遇到 NULL,它會生成另一個 NULL。未知的相反面是另一個未知。

所以,對于這兩個查詢:

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

都不會返回數據,盡管它們是完全相反的。

NULL 和 NOT IN
如果我有這樣的一個查詢語句:

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

很顯然,WHERE 返回 true,這個語句將返回數據,因為 1 在括號列表里是存在的。

但如果這么寫:

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

很顯然,WHERE 返回 false,這個查詢不會返回數據,因為 1 在括號列表里存在,但我們說的是“NOT IN”。

但如果我們把語句改成這樣呢?

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

這里的 WHERE 不會返回數據,因為它的結果不是 true。數字 5 在括號列表里可能不存在,也可能存在,因為當中有一個 NULL 值(數據庫不知道 NULL 的值是什么)。

這個 WHERE 會返回 NULL,所以整個查詢不會返回任何數據。

希望大家現在都清楚該怎么在 SQL 語句中處理 NULL 值了。更多相關SQL處理NULL值內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • sqlserver 不能將值NULL插入列id(列不允許有空值解決)
  • mysql中將null值轉換為0的語句
  • MySQL中對于NULL值的理解和使用教程
  • 在SQL Server中使用ISNULL執行空值判斷查詢
  • 詳解MySQL中的NULL值
  • sql 語句中的 NULL值
  • MySQL NULL 值處理實例詳解
  • SQL 中 NULL值測試代碼

標簽:濟源 武威 泰安 汕頭 安徽 臺州 濟寧 廣東

巨人網絡通訊聲明:本文標題《在SQL中該如何處理NULL值》,本文關鍵詞  在,SQL,中該,如何,處理,NULL,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《在SQL中該如何處理NULL值》相關的同類信息!
  • 本頁收集關于在SQL中該如何處理NULL值的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    中文字幕av一区二区三区高| 日韩视频永久免费| 依依成人综合视频| 欧美视频一区二区三区| 天使萌一区二区三区免费观看| 欧美日韩视频专区在线播放| 久久激情综合网| 中文字幕欧美国产| 欧美在线观看视频一区二区三区| 三级一区在线视频先锋 | 99re成人精品视频| 亚洲一区欧美一区| 日韩精品一区二区三区中文不卡 | 日韩主播视频在线| 精品国产乱码久久久久久牛牛| 国产91精品一区二区麻豆亚洲| 中文无字幕一区二区三区| 91美女精品福利| 奇米777欧美一区二区| 国产喷白浆一区二区三区| 色综合久久天天综合网| 日韩高清国产一区在线| 亚洲国产成人自拍| 91精品国产综合久久香蕉麻豆 | 欧美成人精品3d动漫h| 成人网页在线观看| 日韩二区三区四区| 国产精品丝袜在线| 日韩欧美国产一区二区三区 | 99视频精品在线| 免费观看在线综合色| 亚洲视频一区二区免费在线观看| 欧美一区二区三区不卡| 波多野结衣精品在线| 美脚の诱脚舐め脚责91| 亚洲综合图片区| 亚洲国产精品99久久久久久久久| 91精品国产乱码| 色屁屁一区二区| 成人午夜碰碰视频| 成人妖精视频yjsp地址| 亚洲一区二区精品3399| 国产午夜一区二区三区| 欧美精品在线视频| 色94色欧美sute亚洲线路二| 国产成人免费av在线| 久久不见久久见免费视频7 | 成人蜜臀av电影| 麻豆中文一区二区| 亚洲超丰满肉感bbw| 中文字幕第一区综合| 精品少妇一区二区三区在线视频| 欧美三级日韩在线| 色先锋久久av资源部| 成人教育av在线| 国产精品69久久久久水密桃| 免费成人av资源网| 日本视频免费一区| 五月婷婷激情综合| 亚洲成人777| 亚洲综合色成人| 亚洲精品视频在线| 亚洲女人小视频在线观看| 成人欧美一区二区三区在线播放| 国产日韩欧美精品在线| 久久久三级国产网站| 26uuu色噜噜精品一区二区| 日韩亚洲欧美在线观看| 日韩欧美高清一区| 欧美大度的电影原声| 精品国产免费视频| 久久综合久久综合久久综合| 精品国产伦一区二区三区观看体验| 3751色影院一区二区三区| 91麻豆精品国产91久久久资源速度| 欧美日韩在线观看一区二区| 欧美日韩精品福利| 欧美一级欧美三级在线观看| 日韩欧美一区二区在线视频| 精品久久久久一区二区国产| 久久久久99精品国产片| 国产精品久久免费看| 中文字幕一区二区在线播放| 亚洲免费观看在线视频| 亚洲综合免费观看高清完整版| 久久国产夜色精品鲁鲁99| 蜜桃视频一区二区三区| 国产一区在线不卡| 大美女一区二区三区| 91麻豆产精品久久久久久| 日本道精品一区二区三区| 欧美日韩国产乱码电影| 精品毛片乱码1区2区3区| 久久综合999| 综合av第一页| 午夜视频在线观看一区二区三区| 免费观看91视频大全| 国产99久久久精品| 色狠狠色狠狠综合| 欧美va亚洲va| 亚洲欧洲三级电影| 日韩精品电影在线观看| 国产一区视频导航| 91香蕉视频mp4| 91精品国产综合久久久久久久 | 精品视频在线视频| 久久久三级国产网站| 一区二区在线电影| 久久成人免费网| 91蜜桃网址入口| 欧美一二三在线| 亚洲视频你懂的| 蜜桃久久av一区| 91一区二区三区在线观看| 91精品国产91久久久久久最新毛片| 日本一区二区不卡视频| 欧美a一区二区| 91原创在线视频| 精品国产不卡一区二区三区| 亚洲色图制服丝袜| 久草热8精品视频在线观看| 97精品国产露脸对白| 欧美一区二区精品久久911| 中文字幕国产一区| 麻豆精品视频在线观看免费| www.久久精品| 精品卡一卡二卡三卡四在线| 亚洲综合视频在线| 丁香五精品蜜臀久久久久99网站| 欧美久久久影院| 亚洲精品国产a久久久久久| 国产精品一区二区在线观看网站| 欧美日韩黄视频| 亚洲人妖av一区二区| 国产一区在线精品| 日韩欧美一区二区在线视频| 亚洲国产精品自拍| 91在线小视频| 亚洲国产精品精华液2区45| 毛片av一区二区| 欧美群妇大交群的观看方式| 亚洲人妖av一区二区| 成人一区在线观看| 久久精子c满五个校花| 久久精品国产99久久6| 欧美日韩成人激情| 亚洲第四色夜色| 91老司机福利 在线| 国产精品你懂的在线欣赏| 国内不卡的二区三区中文字幕| 欧美精品日韩综合在线| 亚洲一区二区三区爽爽爽爽爽| 99久久国产免费看| 国产精品色一区二区三区| 国产成人自拍高清视频在线免费播放| 日韩三级视频在线看| 日本免费在线视频不卡一不卡二| 欧美四级电影在线观看| 亚洲一本大道在线| 欧美视频一区在线观看| 亚洲电影欧美电影有声小说| 欧美日韩国产一级| 日韩精品国产欧美| 欧美一区二区三区喷汁尤物| 蜜芽一区二区三区| 日韩欧美一级片| 国产麻豆视频一区二区| 国产女人aaa级久久久级| 国产69精品久久久久777| 中日韩av电影| 99国产欧美久久久精品| 一区二区在线免费观看| 欧美私人免费视频| 日韩电影免费在线看| 日韩精品一区二区三区swag| 久久99久久久久久久久久久| 这里只有精品免费| 日本一区二区免费在线观看视频| 成人一区二区三区视频| 伊人色综合久久天天| 欧美绝品在线观看成人午夜影视| 奇米一区二区三区av| 精品国产乱码久久久久久蜜臀 | 国产福利一区二区三区| 中文乱码免费一区二区| 色综合久久久久综合| 午夜电影久久久| 精品对白一区国产伦| 99久久综合99久久综合网站| 亚洲午夜电影在线观看| 日韩欧美激情在线| 成人性生交大片免费看视频在线| 亚洲色图19p| 欧美一级黄色大片| 国产成人免费视频| 亚洲高清免费在线| xfplay精品久久| 色婷婷国产精品久久包臀| 蜜桃视频第一区免费观看| 亚洲欧洲精品一区二区精品久久久|