中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

手表網(wǎng)站有哪個比較好刷外鏈網(wǎng)站

手表網(wǎng)站有哪個比較好,刷外鏈網(wǎng)站,婦產(chǎn)醫(yī)院網(wǎng)站源碼,專業(yè)做外貿(mào)網(wǎng)站一、新邏輯狀態(tài):未知 對于大多數(shù)其他語言的邏輯判斷,一般只有兩種結(jié)果:真(TURE)或假(FALSE)但在SQL中,還會有第三種判斷結(jié)果:未知(UNKNOWN),表示無法判斷出真或者假。 未知狀態(tài)會影響傳統(tǒng)邏輯運算&#x…

一、新邏輯狀態(tài):未知

  1. 對于大多數(shù)其他語言的邏輯判斷,一般只有兩種結(jié)果:真(TURE)假(FALSE)
  2. 但在SQL中,還會有第三種判斷結(jié)果:未知(UNKNOWN),表示無法判斷出真或者假。

未知狀態(tài)會影響傳統(tǒng)邏輯運算(與或非等)的結(jié)果,總結(jié)如下:

1. 邏輯與操作
AND/&&未知
未知未知未知

特別注意:

  • 對于AND運算符,只有當兩邊的運算結(jié)果都為真時,最終結(jié)果才為真
  • 真 AND 未知 = 未知, 并不是真
2. 邏輯或操作
OR未知
未知未知未知
  • 對于OR運算符,只要兩邊的運算有一個為真時,最終結(jié)果就為真,否則最終結(jié)果為假或者未知
3. 邏輯非操作
NOT運算結(jié)果
未知未知

二、SQL中"未知"狀態(tài)的判斷影響

SQL語句中的WHERE、HAVING、CASE表達式,只返回邏輯運算結(jié)果為的數(shù)據(jù),不返回為假或者未知的數(shù)據(jù)

三、NULL空值

在數(shù)據(jù)庫中,空值NULL是一個特殊值,表示缺失或者未知
在SQL語句中,任何數(shù)據(jù)與空值進行算術(shù)比較的結(jié)果是未知,而非真或非假.。所以空值NULL無法通過 “WHERE c1 = NULL” 來判斷,需要寫成 WHERE c1 IS NULL ,才能作為條件篩選出查詢字段為NULL的數(shù)據(jù)

1. NULL判斷的特殊性

即使兩個未知數(shù)據(jù)進行比較,運算結(jié)果也是未知的,比如下面的比較,都得不出TRUE,而是未知。以下例子則判斷為未知

NULL = 0
NULL != 0
NULL = ‘’ (空字符串)
NULL = !‘’
NULL = NULL
NULL = !NULL

因此在WHERE語句中進行判斷時,務(wù)必要注意查詢列或者查詢條件(即等號兩邊的數(shù)據(jù))都有沒有可能為NULL,如果有則要用IS NULL來判定

替代方案

Mysql提供了<=>運算符,即可等值比較,也可空值比較;

-- mysql
SELECT 1 <=> 1, NULL <=> NULL;

PostgreSQL提供的是:IS [NOT] DISTINCT FROM


-- postgreSQL
SELECT 1 IS DISTINCT FROM 1, NULL IS DISTINCT FROM NULL;
2. NULL對IN() 運算符的影響

IN運算符為判斷所給條件是否在某個集合中。內(nèi)部實際使用等值運算符=來判斷是否和集合中的每個元素相等,再用OR串聯(lián)起來得到最后的邏輯結(jié)果。

SELECT *
FROM student
WHERE name IN("LiLei", "HanMeimei")		-- 等同于 WHERE name = "LiLei" OR name = "HanMeimei"

因此如果想通過IN() 運算符中加NULL元素來將被查字段中的NULL值也篩選出來,實際是無法生效的。比如想實現(xiàn)以下SQL篩選出學生姓名為NULL的,不會有效

-- 無法篩選出name為NULL的記錄
SELECT *
FROM student
WHERE name IN("LiLei", "HanMeimei", NULL)		
/* 等同于 WHERE name = "LiLei" OR name = "HanMeimei" or name = NULL   對于真正name為NULL的數(shù)據(jù),此表達式最終的結(jié)果為未知,不會被篩選出來   */

在NOT IN() 中使用NULL,影響會更大,使得判斷無法篩選出任何記錄

-- 無法篩選出任何記錄
SELECT *
FROM student
WHERE name NOT IN("LiLei", "HanMeimei", NULL)	
/* 因為原句等同于: WHERE name != "LiLei" and  name != "HanMeimei" and name != NULL. 任何值在最后一句中的判斷結(jié)果都會為"UNKOWN",使得整個判斷變?yōu)槲粗?#xff0c;被過濾掉 */
3. NULL對子查詢語句中,ALL()/ANY() 運算符的影響

子查詢中,可以通過比較運算符(=、!=、<、<=、>、>=)與ALL、ANY的組合,來表示等于、不等于、大于…集合中的全部數(shù)據(jù)

SELECT *
FROM student
WHERE class =ANY (		-- 查找屬于1年級的學生SELECT class FROM teacherWHERE grade = 1
)

ALL運算符相當于:對其中每個選項進行比較運算符計算,并用AND運算符串聯(lián)
IN運算符相當于:對其中每個選項進行=運算符計算,并用OR運算符串聯(lián)
ANY與IN類似,也是由OR運算符串聯(lián),比較運算符寫于ANY之前;如果是=ANY,則與IN相同

對于ALL、ANY等運算符,后面加上NULL不會成功篩選出想要的NULL數(shù)據(jù),相反會導致比較離譜的運算結(jié)果

總結(jié)
  • 使用IN/NOT IN/ALL/ANY時,切記不要在選項中設(shè)置NULL。對于子查詢做以上匹配結(jié)果時,也要注意務(wù)必過濾下NULL數(shù)據(jù)
4. 空值處理
COALESCE函數(shù)

COALESCE(exp1, exp2, exp3, …)接收一個輸入列表,返回第一個非NULL的參數(shù);若都為空,則返回NULL

SELECT COALESCE(yuwen_score, shuxue_score, yingyu_score)
FROM student

可以用COALESCE將NULL轉(zhuǎn)換為別的默認值,類似于CASE WHEN

SELECT COALESCE(yuwen_score, 0)   -- 若語文成績?yōu)镹ULL, 則記為0分
FROM student
NULLIF函數(shù)

NULLIF(exp1, exp2)接收兩個入?yún)?#xff1a;若相等則返回NULL;若不等則返回exp1

SELECT NULLIF(yuwen_score, 0)   -- 若語文成績?yōu)?, 則記為NULL;不為0,則取此成績
FROM student

NULLIF函數(shù)最大的目的是被用來防止除零錯誤

SELECT AVG(yuwen_score)/NULLIF(yuwen_score, 0) --若某同學語文成績?yōu)?,則分母為NULL(不是0),此時不會報錯
FROM student
IFNULL函數(shù)

MYSQL與SQLite才有,入?yún)⒅挥袃蓚€,功能是返回兩個入?yún)⒅械谝粋€非空的值(可視為入?yún)⒐潭閮蓚€的COALESCE函數(shù))。注意與NULLIF區(qū)分。

SELECT IFNULL(yuwen_score, 0)   -- 若語文成績?yōu)镹ULL, 則記為0
FROM student
http://www.risenshineclean.com/news/53095.html

相關(guān)文章:

  • WordPress的文本編輯器福建seo
  • 網(wǎng)站開發(fā)的開題任務(wù)書武漢搜索引擎排名優(yōu)化
  • 做紋身注冊什么網(wǎng)站好頭條新聞 最新消息條
  • 二級域名指向 獨立網(wǎng)站營銷型企業(yè)網(wǎng)站
  • 東莞網(wǎng)站哪家好鄭州粒米seo外包
  • 在線做logo的網(wǎng)站惡意點擊軟件哪幾種
  • 支付網(wǎng)站搭建業(yè)務(wù)推廣網(wǎng)站
  • 做網(wǎng)站前臺用什么軟件軟文營銷是什么
  • 上海建設(shè)網(wǎng)站浦東新區(qū)污水管網(wǎng)工程鄭州網(wǎng)站seo推廣
  • 日本插畫網(wǎng)站中國十大搜索引擎排名
  • 做網(wǎng)站在圖片里加文字流量平臺
  • 做傳奇網(wǎng)站報毒怎么處理bing搜索引擎入口
  • 用QQ群做網(wǎng)站排名現(xiàn)在最火的推廣平臺有哪些
  • 網(wǎng)站建設(shè)制作視頻長沙seo步驟
  • 做網(wǎng)站怎么每天更新內(nèi)容旺道優(yōu)化軟件
  • 福州做網(wǎng)站互聯(lián)網(wǎng)公司做百度推廣的公司電話號碼
  • 鄭州做網(wǎng)站的公司哪家專業(yè)seo網(wǎng)站
  • 做特賣的網(wǎng)站愛庫存seo診斷優(yōu)化方案
  • 企業(yè)做網(wǎng)站的流程深圳網(wǎng)絡(luò)營銷推廣渠道
  • 建筑人才網(wǎng)招聘官網(wǎng)登錄深圳seo優(yōu)化排名公司
  • 智能建站系統(tǒng)怎么更換網(wǎng)站模板東莞互聯(lián)網(wǎng)推廣
  • 手機版網(wǎng)站開發(fā)框架關(guān)鍵詞怎么找出來
  • 天津單位網(wǎng)站建設(shè)獲取排名
  • wordpress 性能分析凱里seo排名優(yōu)化
  • 新鄉(xiāng)河南網(wǎng)站建設(shè)頂尖文案
  • 山東mip網(wǎng)站建設(shè)網(wǎng)絡(luò)營銷屬于哪個專業(yè)
  • 網(wǎng)站免費建設(shè)seo外鏈優(yōu)化培訓
  • 廊坊網(wǎng)站建設(shè)公司哪家好建站公司哪家好
  • 做去態(tài)網(wǎng)站要學什么語言故事型軟文廣告
  • 肇慶網(wǎng)站建設(shè)公司哪個好谷歌推廣怎么做