欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

mysql中有沒有嵌套查詢語句

本文小編為大家詳細(xì)介紹“MySQL中有沒有嵌套查詢語句”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“mysql中有沒有嵌套查詢語句”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識(shí)吧。

10余年的寧城網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。營銷型網(wǎng)站建設(shè)的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整寧城建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“寧城網(wǎng)站設(shè)計(jì)”,“寧城網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

mysql中有嵌套查詢語句,語法為“SELECT語句 WHERE 條件(SELECT語句)”;該語句也被稱為子查詢語句,能夠在已有的查詢語句中的where后面再嵌套一層查詢語句,也即將內(nèi)層查詢結(jié)果當(dāng)做外層查詢參照的數(shù)據(jù)來使用。

本教程操作環(huán)境:windows10系統(tǒng)、mysql8.0.22版本、Dell G3電腦。

mysql中有嵌套查詢語句嗎

嵌套查詢,也稱為子查詢,是實(shí)際工作中經(jīng)常用到的一種查詢方式。子查詢其實(shí)就是在已有的查詢語句中的where后面再嵌套一層查詢語句,也就是把內(nèi)層查詢結(jié)果當(dāng)做外層查詢參照的數(shù)據(jù)表來使用。

在工作中,經(jīng)常會(huì)遇見4種子查詢,即含有比較運(yùn)算符(>、>=、<、<=、=、!=)、IN關(guān)鍵詞、ANY/ALL關(guān)鍵詞以及EXISTS關(guān)鍵詞的嵌套查詢。下面我們以學(xué)員考試成績?yōu)槔?,來學(xué)習(xí)一下這四種子查詢的應(yīng)用。

# 創(chuàng)建學(xué)員信息表 
CREATE TABLE stu_info
(
id INT AUTO_INCREMENT PRIMARY KEY, 
iname VARCHAR(20), 
gender CHAR(1), 
department VARCHAR(10), 
age TINYINT, 
province VARCHAR(10), 
email VARCHAR(50), 
mobilephone CHAR(11)
);
# 向?qū)W員表中插入數(shù)據(jù) 
INSERT INTO stu_info(iname,gender,department,age,province,email,mobilephone) VALUES 
('張勇','男','數(shù)學(xué)系',23,'河南','sfddf123dd@163.com','13323564321'), 
('王兵','男','數(shù)學(xué)系',25,'江蘇','lss1993@163.com','17823774329'), 
('劉偉','男','計(jì)算機(jī)系',21,'江蘇','qawsed112@126.com','13834892240'), 
('張峰','男','管理系',22,'上海','102945328@qq.com','13923654481'), 
('董敏','女','生物系',22,'浙江','82378339@qq.com','13428439022'), 
('徐曉紅','女','計(jì)算機(jī)系',24,'浙江','xixiaohong@gmail.com','13720097528'), 
('趙伊美','女','數(shù)學(xué)系',21,'江蘇','zhaomeimei@163.com','13417723980'), 
('王建國','男','管理系',24,'浙江','9213228402@qq.com','13768329901'), 
('劉清','女','統(tǒng)計(jì)系',23,'安徽','lq1128@gmail.com','17823651180'), 
('趙家和','男','計(jì)算機(jī)系',28,'山東','dcrzdbjh@163.com','13827811311');

# 創(chuàng)建學(xué)員成績表 
CREATE TABLE stu_score( id INT , Excel TINYINT, Tableau TINYINT, MySQL TINYINT ); 
# 向成績表中插入數(shù)據(jù) 
INSERT INTO stu_score VALUES 
(1,87,72,88), 
(3,90,66,72), 
(2,90,70,86), 
(4,88,82,76), 
(8,92,67,80), 
(10,88,82,89), 
(5,79,66,60), 
(7,91,78,90), 
(6,82,79,88), 
(9,85,70,85); 

# 1.查詢年齡超過所有學(xué)員平均年齡的學(xué)員信息 
SELECT * FROM stu_info 
WHERE age >= avg(age); 
#需要注意的是Where后面不能使用聚合函數(shù)
#應(yīng)該修改成
SELECT AVG(age) FROM stu_info;
SELECT * FROM stu_info
WHERE age>=23.3
#二合一 
# 1.查詢年齡超過所有學(xué)員平均年齡的學(xué)員信息 
SELECT * FROM stu_info 
WHERE age >= (SELECT AVG(age) FROM stu_info);

# 2.查詢年齡不低于所屬系平均年齡的學(xué)員信息 
SELECT * FROM stu_info AS s1 
WHERE age>= ( SELECT avg(age) FROM stu_info AS s2 
			  WHERE s1.department = s2.department);

使用含比較運(yùn)算符的嵌套查詢時(shí),需要注意,比較運(yùn)算符后面的子查詢只能返回一個(gè)結(jié)果。

(2)含ANY或ALL關(guān)鍵詞的嵌套查詢
對(duì)于含比較運(yùn)算符的嵌套查詢來說,嵌套部分的查詢語句只能返回一個(gè)值。那如果子查詢返回多個(gè)值,就需要用到ANY或者ALL關(guān)鍵詞了。通常,ANY / ALL 關(guān)鍵詞經(jīng)常和比較運(yùn)算符連用,下面是6種比較運(yùn)算符與ANY / ALL 關(guān)鍵詞的搭配結(jié)果:mysql中有沒有嵌套查詢語句

# 1.查詢非管理系中比管理系任意一個(gè)學(xué)員年齡小的學(xué)員信息 SELECT * FROM stu_info 
WHERE age < ANY(SELECT DISTINCT age FROM stu_info WHERE department = '管理系') 
			AND department != '管理系';

mysql中有沒有嵌套查詢語句
這里的查詢邏輯是這樣的:首先查詢管理系中學(xué)生的年齡(去重),得到的結(jié)果是22和24;然后查詢出非管理系中年齡比22或24年齡小的學(xué)生信息(也就是年齡小于24的非管理系學(xué)生信息)。

# 2.查詢非管理系中比管理系所有學(xué)員年齡大的學(xué)員信息 SELECT * FROM stu_info 
WHERE age > ALL (SELECT DISTINCT age FROM stu_info WHERE department = '管理系') 
      AND department != '管理系';

mysql中有沒有嵌套查詢語句
這里的查詢邏輯是這樣的:首先查詢管理系中學(xué)生的年齡(去重),得到的結(jié)果是22和24;然后查詢出非管理系中年齡比22和24都大的學(xué)生信息(也就是年齡大于24的非管理系學(xué)生信息)。

(3)含IN關(guān)鍵詞的嵌套查詢
當(dāng)查詢條件涉及某些已知的可枚舉離散值的時(shí)候,我們就可以選擇IN關(guān)鍵詞來完成數(shù)據(jù)的提取。IN關(guān)鍵詞有兩種用法:

  1. 將可枚舉的離散值直接寫在值列表中

  2. 當(dāng)離散值是基于其他表的篩選結(jié)果時(shí),就可以使用嵌套查詢,即把另一個(gè)表的查詢語句塊寫在IN關(guān)鍵詞后面的括號(hào)里。

# 1.查詢數(shù)學(xué)系和計(jì)算機(jī)系的學(xué)員信息 
SELECT * FROM stu_info WHERE department IN('數(shù)學(xué)系','計(jì)算機(jī)系'); 
# 2.查詢與張勇、劉偉同一個(gè)系的學(xué)員信息 
SELECT * FROM stu_info 
WHERE department IN (SELECT department FROM stu_info WHERE iname IN('張勇','劉偉')); 
# 3.查詢MySQL成績大于85分的學(xué)員信息 
SELECT * FROM stu_info 
WHERE id IN (SELECT id FROM stu_score WHERE MySQL > 85);

需要注意的是,在使用IN關(guān)鍵詞的嵌套查詢的時(shí)候,嵌套部分只能返回一個(gè)字段的信息(比如上面的department字段或者id字段),如果返回兩個(gè)及以上字段信息則會(huì)出現(xiàn)語法錯(cuò)誤。

(4)含EXISTS關(guān)鍵詞的嵌套查詢
EXISTS 關(guān)鍵詞的作用和 IN關(guān)鍵詞非常類似,不同的是,通過EXISTS關(guān)鍵詞的嵌套查詢返回的不是具體的值集合,而是滿足條件的邏輯值(也就是True / False)。也就是說,EXISTS的作用就是“判斷是否存在滿足某種條件的記錄”,如果存在這樣的記錄就返回真(True),如果不存在這樣的記錄就返回假(False)。

# 查詢MySQL成績大于85分的學(xué)員信息 SELECT * FROM stu_info 
WHERE EXISTS(SELECT * FROM stu_score WHERE stu_score.id = stu_info.id AND MySQL > 85);

需要注意的是,使用EXISTS關(guān)鍵詞的嵌套語句 WHERE與EXISTS關(guān)鍵詞之間沒有任何參數(shù),這是因?yàn)镋XISTS只需要一個(gè)參數(shù),通常是在EXISTS右側(cè)加一個(gè)子查詢語句。此外,EXISTS后面的子查詢中SELECT后面可以寫表中任何一個(gè)字段或者星號(hào)或者一個(gè)常數(shù),因?yàn)镋XISTS后面的子查詢只關(guān)心是否存在滿足條件的記錄。下面返回的結(jié)果都是一樣:

【補(bǔ)充】關(guān)于IN和EXISTS兩個(gè)關(guān)鍵詞還有兩個(gè)延伸關(guān)鍵詞NOT IN和NOT EXISTS

# 查詢數(shù)學(xué)系和計(jì)算機(jī)系之外的學(xué)員信息 
# 方法一 
SELECT * FROM stu_info 
WHERE department NOT IN('數(shù)學(xué)系','計(jì)算機(jī)系'); 
#方法二 
SELECT * FROM stu_info 
WHERE NOT EXISTS(SELECT * FROM stu_score WHERE department IN('數(shù)學(xué)系','計(jì)算機(jī)系') and stu_score.id = stu_info.id); 
# not exists的邏輯比較復(fù)雜,需要大家慢慢領(lǐng)會(huì) 
# 主要看not exists括號(hào)中的sql語句是否有結(jié)果,無結(jié)果:才會(huì)繼續(xù)執(zhí)行where條件;有結(jié)果:視為 where條件不成立。 
# 當(dāng)子查詢和主查詢有關(guān)聯(lián)條件時(shí),相當(dāng)于從主查詢中去掉子查詢的數(shù)據(jù)。

對(duì)于IN和EXISTS兩個(gè)關(guān)鍵詞,大多數(shù)情況下都可以相互替換,主要差別是使用效率問題,通常情況下采用EXISTS要比IN效率要高,但也要看實(shí)際情況具體使用:IN適合于外表大而內(nèi)表小的情況;EXISTS適合于外表小而內(nèi)表大的情況。

讀到這里,這篇“mysql中有沒有嵌套查詢語句”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

當(dāng)前文章:mysql中有沒有嵌套查詢語句
文章網(wǎng)址:http://chinadenli.net/article6/jsidig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、電子商務(wù)、域名注冊(cè)、外貿(mào)網(wǎng)站建設(shè)、用戶體驗(yàn)、品牌網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計(jì)
欧美日韩亚洲精品内裤| 免费国产成人性生活生活片| 激情内射日本一区二区三区| 亚洲第一区欧美日韩在线| 久久永久免费一区二区| 日本高清二区视频久二区| 人人妻人人澡人人夜夜| 国产性色精品福利在线观看| 91天堂素人精品系列全集| 老熟妇2久久国内精品| 男女激情视频在线免费观看| 婷婷一区二区三区四区| 色综合视频一区二区观看| 日韩中文字幕视频在线高清版| 免费观看一区二区三区黄片| 日本一本不卡免费视频| 欧美国产精品区一区二区三区| 夫妻性生活黄色录像视频| 成人免费在线视频大香蕉| av在线免费观看一区二区三区| 丰满少妇高潮一区二区| 亚洲一区二区亚洲日本| 国产又猛又黄又粗又爽无遮挡| 国产91色综合久久高清| 国产女同精品一区二区| 亚洲黄香蕉视频免费看| 日本久久中文字幕免费| 午夜国产精品国自产拍av| 丁香六月婷婷基地伊人| 99国产精品国产精品九九 | 深夜福利欲求不满的人妻| 久久精品国产99精品亚洲| 精品久久av一二三区| 亚洲国产精品av在线观看| 色鬼综合久久鬼色88| 免费国产成人性生活生活片| 亚洲欧美日韩精品永久| 日本久久精品在线观看| 91麻豆精品欧美视频| 日韩欧美国产精品自拍| 亚洲精品福利入口在线|