亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > 幫助中心 > 正文

詳解數據庫語言中的null值

2024-07-09 22:47:45
字體:
來源:轉載
供稿:網友

雖然熟練掌握SQL的人對于Null不會有什么疑問,但總結得很全的文章還是很難找,看到一篇英文版的, 感覺還不錯。

Tony Hoare 在1965年發明了 null 引用, 并認為這是他犯下的“幾十億美元的錯誤”. 即便是50年后的今天, SQL中的 null 值還是導致許多常見錯誤的罪魁禍首.

我們一起來看那些最令人震驚的情況。

 

Null不支持大小/相等判斷

下面的2個查詢,不管表 users 中有多少條記錄,返回的記錄都是0行:
 

select * from users where deleted_at = null; – result: 0 rows select * from users where deleted_at != null; – result: 0 rows

 

怎么會這樣子? 一切只因為 null 是表示一種“未知”的類型。也就是說,用常規的比較操作符(normal conditional operators)來將 null 與其他值比較是沒有意義的。 Null 也不等于 Null(近似理解: 未知的值不能等于未知的值,兩者間的關系也是未知,否則數學和邏輯上就亂套了)。

– 注意: 下面的SQL適合于MySQL,如果是Oracle,你需要加上 … from dual;

 

select null > 0; – result: null select null < 0; – result: null select null = 0; – result: null select null = null; – result: null select null != null; – result: null

 

將某個值與 null 進行比較的正確方法是使用 is 關鍵字, 以及 is not 操作符:
 

select * from users where deleted_at is null; – result: 所有被標記為刪除的 users

 

如果想要判斷兩列的值是否不相同,則可以使用 is distinct from:
 

select * from users where has_address is distinct from has_photo – result: 地址(address)或照片(photo)兩者只有其一的用戶

 

not in 與 Null

子查詢(subselect)是一種很方便的過濾數據的方法。例如,如果想要查詢沒有任何包的用戶,可以編寫下面這樣一個查詢:
 

select * from users where id not in (select user_id from packages)

 

但此時假若 packages 表中某一行的 user_id 是 null 的話,問題就來了: 返回結果是空的! 要理解為什么會發生這種古怪的事情, 我們需要理解SQL編譯器究竟干了些什么. 下面是一個更簡單的示例:
 

select * from users where id not in (1, 2, null)

 

這個SQL語句會被轉換為:
 

select * from users where id != 1 and id != 2 and id != null

 

我們知道,id != null 結果是個未知值, null. 而任意值和 null 進行 and 運算的結果都是 null, 所以相當于沒有其他條件. 那么出這種結果的原因就是 null 的邏輯值不為 true.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩美女免费观看| 亚洲日本aⅴ片在线观看香蕉| 在线播放精品一区二区三区| 日本高清不卡的在线| 欧美国产中文字幕| 国内精品一区二区三区| 欧美成人黄色小视频| 日韩电影中文字幕| 欧美性生交大片免网| 亚洲伊人久久综合| 蜜臀久久99精品久久久无需会员| 精品国偷自产在线视频99| 国产美女久久精品| 久久综合伊人77777尤物| 夜色77av精品影院| 欧美xxxx做受欧美| 九九精品视频在线| 欧美精品在线免费观看| 一二美女精品欧洲| 97国产一区二区精品久久呦| 亚洲久久久久久久久久久| 4p变态网欧美系列| 一本大道香蕉久在线播放29| 亚洲综合一区二区不卡| 久热爱精品视频线路一| 国产精品777| 国产精品91久久久久久| 精品国产成人在线| 日韩成人小视频| 在线精品播放av| 国产精品观看在线亚洲人成网| 91精品国产自产在线老师啪| 日韩精品999| 国产成人久久久| 国产精品久久久久av| 日韩电影大片中文字幕| 亚洲香蕉在线观看| 欧美激情aaaa| 国产精品一区二区久久国产| 亚洲欧美激情一区| 欧美久久精品午夜青青大伊人| 日韩专区中文字幕| 91午夜理伦私人影院| 国产精品极品在线| 亚洲综合日韩在线| 欧美日韩不卡合集视频| 国产精品日韩欧美| 欧美三级免费观看| 久久亚洲欧美日韩精品专区| 91a在线视频| 日韩视频免费大全中文字幕| 欧美日韩中文字幕在线| 日本亚洲欧洲色| 亚洲开心激情网| 欧美极品少妇xxxxⅹ喷水| 欧美成人精品一区| 国产一区二区三区精品久久久| 亚洲国模精品私拍| 91sa在线看| 在线播放亚洲激情| 91精品久久久久久久久久久久久久| 久久精品99久久久久久久久| 国产视频精品va久久久久久| 国产精品成人免费电影| 欧美黄色小视频| 精品亚洲男同gayvideo网站| 久久99国产精品久久久久久久久| 欧美高清在线播放| 久久综合久久美利坚合众国| 精品视频在线导航| 国产精品91一区| 成人免费网站在线看| 国产成人高清激情视频在线观看| 国产这里只有精品| 国产精品久久网| 国产日韩av高清| 岛国av一区二区在线在线观看| 亚洲视频综合网| 国产精品高清在线观看| 欧美大奶子在线| 97婷婷大伊香蕉精品视频| 国产一区二区三区在线免费观看| 亚洲美女av黄| 色樱桃影院亚洲精品影院| 国产视频福利一区| 尤物yw午夜国产精品视频| 欧美日本国产在线| 91网在线免费观看| 久久手机精品视频| 美女av一区二区| 亚洲美女av电影| 亚洲国产精品高清久久久| 一区二区三区 在线观看视| 亚洲xxx视频| 久久久久久九九九| 亚洲视频欧洲视频| 日韩成人在线电影网| 成人午夜两性视频| 精品国产一区二区三区久久狼5月| 在线观看亚洲视频| 国内精品中文字幕| 国产精品美女999| 欧美精品九九久久| 国产精品自在线| 久久久久久久久久久av| 精品国产一区二区三区久久狼5月| 国产精品www色诱视频| 久久久av网站| 亚洲第一偷拍网| 国产精品久久久久秋霞鲁丝| 日本欧美中文字幕| 日韩电影在线观看免费| 这里只有精品丝袜| 日韩成人在线视频网站| 亚洲男女性事视频| 91香蕉嫩草影院入口| 欧美极品在线播放| 国产一区二区在线播放| 欧美日韩在线视频观看| 亚洲精品网站在线播放gif| 欧美一区二区大胆人体摄影专业网站| 综合激情国产一区| 88国产精品欧美一区二区三区| 影音先锋日韩有码| 国产一区二区三区在线播放免费观看| 亚洲qvod图片区电影| 色偷偷av一区二区三区乱| 欧美色视频日本版| 国产精品精品视频一区二区三区| 亚洲在线观看视频网站| 日韩毛片在线观看| 欧美日韩免费在线| 亚洲国产精品va在看黑人| 国产精品久久久久久久天堂| 久久99热精品这里久久精品| 久久成人18免费网站| 91精品视频在线免费观看| 久久久久久久久久久国产| 欧美极品少妇xxxxⅹ裸体艺术| 久久精品国产一区| 亚洲国产精品专区久久| 国产精品高清在线观看| 欧美俄罗斯乱妇| 色噜噜久久综合伊人一本| 亚洲xxxx18| 中文字幕亚洲欧美| 欧美成人激情图片网| 日韩国产精品亚洲а∨天堂免| 亚洲国产97在线精品一区| 亚洲人成伊人成综合网久久久| 亚洲天堂开心观看| 精品亚洲夜色av98在线观看| 国产精品成人观看视频国产奇米| 国产成人精品最新| 国产精品欧美一区二区| 国产丝袜一区视频在线观看| 欧美在线www| 亚洲xxxx视频| 国产精品激情av电影在线观看| 色偷偷av一区二区三区| 91香蕉嫩草影院入口| 亚洲自拍偷拍一区| 亚洲欧美制服综合另类| 大伊人狠狠躁夜夜躁av一区|