亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > 在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值的相關信息資訊供網民參考!
  • 推薦文章
    国产a视频| 青青久久精品| 日韩中文字幕一区| 欧美激情一区二区三区在线播放| 日日爽天天| 日韩av成人| 国产伦精品一区二区三区无广告| 色综合久久手机在线| 毛片高清| 九九免费高清在线观看视频| 日本在线www| 香蕉视频亚洲一级| 韩国三级视频在线观看| 香蕉视频久久| 午夜激情视频在线观看| 999精品在线| 国产成人精品综合在线| 香蕉视频亚洲一级| 国产一区二区福利久久| 久久精品成人一区二区三区| 国产激情视频在线观看| 99热视热频这里只有精品| 在线观看导航| 香蕉视频久久| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 久草免费在线视频| 亚洲精品影院| 精品毛片视频| 亚洲 激情| 久久精品店| 国产一区二区精品在线观看| 黄色福利片| 天天做人人爱夜夜爽2020毛片| 久久99青青久久99久久| 国产原创视频在线| 青青久热| 日本在线不卡免费视频一区| 久久精品欧美一区二区| 一级毛片视频免费| 国产国语对白一级毛片| 国产一区二区精品在线观看| 色综合久久天天综线观看| 天天做人人爱夜夜爽2020| 久久精品免视看国产明星| 欧美a级片免费看| 成人高清视频在线观看| 国产一级生活片| 国产美女在线观看| 日韩专区亚洲综合久久| 亚欧成人乱码一区二区| 日韩免费在线视频| 日本伦理黄色大片在线观看网站| 国产一区二区高清视频| 午夜在线亚洲| 欧美国产日韩精品| 国产高清在线精品一区二区| 国产一区精品| 亚洲天堂一区二区三区四区| 亚洲精品永久一区| 欧美大片一区| 成人影视在线播放| 国产不卡在线播放| 国产韩国精品一区二区三区| 国产视频一区二区三区四区| 精品视频在线观看视频免费视频 | 免费毛片播放| 久久99中文字幕久久| 日韩在线观看视频黄| 成人影院久久久久久影院| 999久久狠狠免费精品| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 午夜激情视频在线观看| 精品视频免费在线| 国产不卡在线观看视频| 韩国三级视频网站| 一级片免费在线观看视频| 国产91视频网| 国产网站免费视频| 国产原创视频在线| 日韩专区第一页| 99热视热频这里只有精品| 国产国语在线播放视频| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 国产麻豆精品视频| 午夜欧美福利| 亚飞与亚基在线观看| 国产精品免费久久| 亚洲精品久久玖玖玖玖| 美国一区二区三区| 欧美爱色| 黄色免费三级| 久久国产精品自由自在| 精品国产一区二区三区久久久狼| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 精品视频免费看| 欧美另类videosbestsex久久| 日本特黄特色aaa大片免费| 国产91精品露脸国语对白| 欧美一级视频免费| 欧美爱色| 欧美爱爱动态| 欧美18性精品| 欧美日本免费| 日本免费看视频| 成人a大片高清在线观看| 国产成人精品综合久久久| 国产视频久久久久| 日韩中文字幕在线播放| 台湾美女古装一级毛片| 九九干| 色综合久久天天综合| 精品在线观看国产| 黄视频网站在线看| 国产不卡在线观看视频| 国产麻豆精品免费视频| 成人免费观看男女羞羞视频| 成人高清免费| 国产伦理精品| 午夜在线亚洲男人午在线| 亚洲精品中文字幕久久久久久| 尤物视频网站在线| 日韩在线观看视频黄| 日韩在线观看免费| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 欧美爱爱动态| 可以在线看黄的网站| 午夜欧美成人久久久久久| 国产精品1024永久免费视频| 精品视频在线观看免费 | 国产一区二区精品在线观看| 国产一区二区精品尤物| 欧美激情一区二区三区视频| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 黄视频网站在线免费观看| 四虎影视久久久| 香蕉视频久久| 精品久久久久久中文| 国产精品自拍亚洲| 久久99这里只有精品国产| 成人高清视频在线观看| 日本伦理网站| 超级乱淫伦动漫| 国产成人欧美一区二区三区的| 国产极品精频在线观看| 高清一级毛片一本到免费观看| 国产成人精品综合久久久| 欧美电影免费看大全| a级精品九九九大片免费看| 欧美一级视频免费观看| 成人a大片在线观看| 国产一区二区精品尤物| 中文字幕97| 国产伦久视频免费观看 视频| 日韩中文字幕在线亚洲一区| 国产高清视频免费观看| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 国产高清在线精品一区a| 国产伦精品一区三区视频| 成人影视在线播放| 免费一级片网站| 日本伦理片网站| 免费国产在线观看不卡| 国产高清视频免费观看| 亚洲女人国产香蕉久久精品| 亚飞与亚基在线观看| 中文字幕一区二区三区精彩视频| 久久福利影视| 天天做日日爱| 久久国产精品自线拍免费| 精品国产亚一区二区三区| 一级女性全黄生活片免费| 欧美日本免费| 国产91精品一区| 亚洲女初尝黑人巨高清在线观看| 尤物视频网站在线| 精品美女| 国产成人精品综合久久久| 91麻豆国产| 国产视频网站在线观看| 黄色免费三级| 成人a大片高清在线观看| 91麻豆精品国产综合久久久| 久久国产影院| 国产a免费观看| 亚洲 激情| 中文字幕一区二区三区精彩视频| 国产成人啪精品视频免费软件| 久久99爰这里有精品国产| 国产91精品系列在线观看| 韩国三级视频网站| 国产视频一区在线| 日韩av成人| 免费国产在线观看| 欧美日本国产| 久久99这里只有精品国产| 日韩免费在线| 亚洲精品影院| 九九热国产视频| 久草免费在线视频| 国产美女在线观看|