婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 在 SQL 語句中處理 NULL 值的方法

在 SQL 語句中處理 NULL 值的方法

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

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

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

在查詢數據庫時,如果你想知道一個列(例如:用戶注冊年限 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 表示 “未知值”,這個值是未知的。

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 值的方法的詳細內容,更多關于SQL 中的 NULL值的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • Java中關于Null的9個解釋(Java Null詳解)
  • Java中的Null到底是什么
  • 詳解mysql不等于null和等于null的寫法
  • JAVA與SQL 中的null與NULL解析

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

巨人網絡通訊聲明:本文標題《在 SQL 語句中處理 NULL 值的方法》,本文關鍵詞  在,SQL,語句,中,處理,NULL,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《在 SQL 語句中處理 NULL 值的方法》相關的同類信息!
  • 本頁收集關于在 SQL 語句中處理 NULL 值的方法的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产天堂亚洲国产碰碰| 精品污污网站免费看| 日产欧产美韩系列久久99| 亚洲图片有声小说| 国产91丝袜在线播放0| 亚洲国产cao| 男女视频一区二区| 91福利在线观看| 一区二区免费看| 精品一区二区在线播放| 五月天中文字幕一区二区| 日韩国产在线观看一区| 看片的网站亚洲| 欧美高清视频一二三区| 亚洲欧美综合网| 国产91精品一区二区麻豆亚洲| 日韩三级视频在线看| 日本系列欧美系列| 亚洲国产va精品久久久不卡综合| 欧美精品第1页| 国产美女精品人人做人人爽| 欧美国产精品一区二区三区| 亚洲欧洲综合另类| 国产欧美精品国产国产专区| 久久久久国产成人精品亚洲午夜 | 亚洲在线视频网站| 在线不卡欧美精品一区二区三区| 激情综合五月婷婷| 日韩免费高清视频| 精品中文字幕一区二区小辣椒| 精品对白一区国产伦| 成人短视频下载| 26uuu成人网一区二区三区| 中文字幕中文字幕在线一区 | 午夜免费欧美电影| 精品视频资源站| 国内成人免费视频| 国产精品美女久久久久久久| 国产成人欧美日韩在线电影| 欧美中文字幕一区二区三区亚洲| 国产精品第一页第二页第三页 | 洋洋成人永久网站入口| www国产成人免费观看视频 深夜成人网| 日韩av在线播放中文字幕| 麻豆传媒一区二区三区| www.日韩在线| 国产最新精品免费| 亚洲三级电影全部在线观看高清| 亚洲国产精品成人久久综合一区| 中文字幕一区av| 国产女人18毛片水真多成人如厕| 久久综合成人精品亚洲另类欧美 | 午夜精品福利一区二区蜜股av | 一区二区在线看| 国产精品久久久久四虎| 亚洲少妇30p| 91精品国产免费久久综合| 91色乱码一区二区三区| 洋洋成人永久网站入口| 欧美韩国日本综合| 国产精品日韩精品欧美在线| 日韩欧美中文字幕一区| 国产欧美一区二区三区鸳鸯浴| 在线观看国产一区二区| 91久久精品日日躁夜夜躁欧美| 色综合视频一区二区三区高清| 久久精品国产99| 亚洲另类中文字| 久久久精品天堂| 日韩亚洲欧美成人一区| 在线观看日韩毛片| 亚洲一区日韩精品中文字幕| 97久久久精品综合88久久| 国产精品77777| 国产精品69久久久久水密桃| 色欧美日韩亚洲| 亚洲一区二区三区视频在线播放 | 成人a级免费电影| 在线国产电影不卡| 欧美日韩国产一级二级| 国产精品蜜臀在线观看| 日韩二区三区在线观看| 一本大道av一区二区在线播放| 91精品国产aⅴ一区二区| 亚洲欧美日韩国产另类专区| 国产一区二区视频在线播放| 91丝袜呻吟高潮美腿白嫩在线观看| 欧美亚洲日本国产| 成人欧美一区二区三区黑人麻豆| 久久精品免费观看| 国产精品灌醉下药二区| 99精品欧美一区| 日韩一级片在线观看| 在线免费观看日韩欧美| 国产精品国产自产拍高清av王其 | 久久婷婷国产综合国色天香| 亚洲第一狼人社区| 欧美精品三级在线观看| 亚洲成人av一区二区| 精品国产麻豆免费人成网站| 亚洲va欧美va国产va天堂影院| av网站一区二区三区| 亚洲欧美电影一区二区| av亚洲精华国产精华精华| 亚洲三级电影网站| 成人精品视频一区二区三区尤物| 国产欧美视频在线观看| 成人动漫中文字幕| 欧美日韩综合在线| 日本欧美久久久久免费播放网| 91精品国产色综合久久ai换脸| 亚洲va国产天堂va久久en| 欧美一区日韩一区| 岛国精品在线观看| 亚洲福利视频一区二区| 欧美视频在线观看一区二区| 一区二区国产盗摄色噜噜| 欧美精品在线一区二区三区| 91麻豆成人久久精品二区三区| 国产网红主播福利一区二区| 在线观看欧美精品| 久久爱另类一区二区小说| 精品国产sm最大网站免费看| 99久久精品国产精品久久| 午夜电影一区二区三区| 欧美成人官网二区| 91视频观看免费| 国产一区二区三区高清播放| 亚洲一本大道在线| 91精品一区二区三区在线观看| 国产suv精品一区二区三区| 日韩电影在线观看电影| 国产精品自产自拍| 亚洲美女淫视频| 国产午夜精品久久久久久免费视 | 精彩视频一区二区| 成人精品视频一区| 亚洲中国最大av网站| 久久你懂得1024| 色综合激情五月| 在线视频一区二区三区| 激情图片小说一区| 婷婷综合另类小说色区| 午夜精品久久久久影视| 亚洲成人动漫在线免费观看| 亚洲人成影院在线观看| 日韩欧美黄色影院| 亚洲乱码国产乱码精品精小说 | 国产精品69毛片高清亚洲| 午夜精品久久久久久久蜜桃app| 亚洲图片欧美一区| 一区二区三区不卡视频在线观看| 欧美激情艳妇裸体舞| 日韩伦理免费电影| 亚洲成人先锋电影| 中文一区二区完整视频在线观看| 国产午夜精品福利| 亚洲午夜电影网| 国产精品资源网| 欧美日韩国产综合一区二区三区| 欧美老女人在线| 精品视频在线免费看| 国产精品18久久久| 欧美三级三级三级| 日韩丝袜美女视频| 日韩网站在线看片你懂的| 国产色产综合色产在线视频 | 国产成人综合视频| 91久久精品一区二区| 久久国内精品自在自线400部| 婷婷久久综合九色综合绿巨人| 亚洲v中文字幕| 欧美狂野另类xxxxoooo| 欧美xxxxx裸体时装秀| 亚洲一级在线观看| eeuss国产一区二区三区| 在线精品视频小说1| 国产尤物一区二区| 蜜臀99久久精品久久久久久软件| aaa亚洲精品| 91精品国产综合久久精品图片| 亚洲欧美偷拍卡通变态| www.66久久| 日本精品视频一区二区三区| 欧美日韩日本视频| 亚洲一区二区av电影| 色哟哟国产精品| 久久久国产综合精品女国产盗摄| 久久国产精品99久久人人澡| 日韩欧美中文字幕精品| 秋霞电影网一区二区| 7777精品伊人久久久大香线蕉完整版| 日韩一级黄色大片| 亚洲国产精品一区二区久久恐怖片 | 精品国产百合女同互慰| 奇米一区二区三区| 亚洲精品一区二区在线观看| 亚洲第一成人在线| 91精品国产91综合久久蜜臀| 国产91富婆露脸刺激对白|