成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SQL Server子查詢相關(guān)知識(shí)筆記

數(shù)據(jù)庫(kù) SQL Server
今天給大家介紹以下SQLServer子查詢相關(guān)知識(shí),希望對(duì)大家能有所幫助!

[[391012]]

 今天給大家介紹以下SQLServer子查詢相關(guān)知識(shí),希望對(duì)大家能有所幫助!

1、子查詢概念介紹

子查詢可以嵌套在SELECT、INSERT、UPDATE、DELETE語(yǔ)句或其他子查詢語(yǔ)句中的查詢,子查詢一般作為查詢中間結(jié)果集角色,子查詢也稱為內(nèi)部查詢或內(nèi)部選擇,包含子查詢的語(yǔ)句稱為外部查詢或外部選擇。根據(jù)可用系統(tǒng)內(nèi)存和查詢中其他表達(dá)式的復(fù)雜程度的不同,嵌套限制也有所不同,一般可以支持嵌套32層。個(gè)人建議盡量避免多層嵌套這樣SQL語(yǔ)句的可讀性和可維護(hù)性都會(huì)很差。使用表達(dá)式的地方一般都可以使用子查詢。

2、子查詢分類

單值子查詢:子查詢的返回值屬于單個(gè)。常見(jiàn)與查詢列、單值的查詢條件使用。

多值子查詢:子查詢的返回值多個(gè)。常見(jiàn)in、exists等篩選語(yǔ)句使用。

3、子查詢的使用場(chǎng)景

3.1 選擇列表中使用子查詢

選擇列表中使用子查詢作為查詢結(jié)果一列值出現(xiàn)的。該情況下調(diào)用子查詢返回的只能是單值。只能是單值子查詢。

  1. -- 查詢學(xué)生姓名、年齡、總成績(jī) 
  2.  
  3. select a.username,a.age,(select sum(score)  
  4. from Score where userId=a.userId)) totalScorefrom UserInfo a 

3.2 作為查詢條件

  1. -- 查詢部門名稱是技術(shù)部的員工信息 單值查詢 
  2. select username,age,address from Emp 
  3. where deptno=(select top 1 deptno  
  4. from DeptInfo where depName='技術(shù)部'); 
  5. -- 查詢產(chǎn)品庫(kù)存大于10噸的產(chǎn)品列表 多值查詢 
  6. select name,code from ProductInfo 
  7. where Code in (select s.code from StockInfo s where qty>20); 
  8. 同樣的insertupdatedelete用法比較類似比如: 
  9. -- 刪除庫(kù)存量為0的產(chǎn)品 
  10. delete from ProductInfo 
  11. where Code in (select s.code from StockInfo s where qty=0); 
  12. -- 更新庫(kù)存量為0的產(chǎn)品remark字段更新為標(biāo)記 
  13. update ProductInfo set remark='標(biāo)記' 
  14. where Code in (select s.code from StockInfo s where qty=0) 

4、子查詢和連接查詢的關(guān)系

很多包含子查詢的SQL語(yǔ)句都可以改成連接查詢的形式表示,包含子查詢的語(yǔ)句和語(yǔ)義上等效的無(wú)子查詢的語(yǔ)句性能差別不大。但針對(duì)檢查存在性的情況中,聯(lián)接查詢性能更好,數(shù)據(jù)量越大聯(lián)接查詢會(huì)更能體現(xiàn)效率。

比如:

  1. -- 查詢學(xué)生姓名、年齡、總成績(jī) 
  2. select min(a.username),min(a.age),sum(score) totalScore 
  3. from UserInfo a  
  4. left join Score b on a.userId=b.userId 

5、包含in和exists子查詢區(qū)別

in子查詢:結(jié)果是包含0個(gè)或者多個(gè)值的列表,表示值的等于關(guān)系。

exists子查詢:它只返回true或false。表示一種存在的行為。

通常情況下in和exist可以互換。

當(dāng)子查詢結(jié)果不存在NULL值時(shí),not in和not exists得到的查詢結(jié)果一樣,所生成的查詢計(jì)劃也一樣。

當(dāng)in里面的值為null的情況下查詢記錄為0;當(dāng)exists里面的值為null情況下相當(dāng)于查詢條件不起作用。

示例:

  1. select name,age UserInfo where userId in (1,2,3,4); 
  2. select name,age UserInfo where exists (1,2,3,4); 

說(shuō)明:EXISTS與IN的使用效率的問(wèn)題,通常情況下采用exists要比in效率高,但要看實(shí)際情況具體使用:IN適合于外表大而內(nèi)表小的情況;EXISTS適合于外表小而內(nèi)表大的情況。

6、包含比較運(yùn)算符的子查詢

子查詢可以由一個(gè)比較運(yùn)算符(=、<>、>、>=、<、!>、!<或<=)引入。使用比較運(yùn)算符引入的子查詢必須返回單個(gè)值而不能一個(gè)值列表。否則,SQL Server將顯示一條錯(cuò)誤信息。

 

責(zé)任編輯:姜華 來(lái)源: IT技術(shù)分享社區(qū)
相關(guān)推薦

2021-03-19 07:12:23

SQL Server數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)收縮

2021-03-24 14:50:00

SQLServer數(shù)據(jù)庫(kù)字符串

2021-03-04 22:02:18

SQL Serve數(shù)據(jù)庫(kù)架構(gòu)

2010-07-21 09:50:12

SQL Server子

2011-08-04 15:20:52

SQL Server數(shù)據(jù)庫(kù)鏡像

2010-06-30 15:24:49

SQL Server子

2013-03-06 09:49:16

SQL Server

2021-10-24 11:11:30

Spring開(kāi)源Java開(kāi)發(fā)

2013-05-02 15:09:22

2011-08-25 15:19:25

SQL Server 排序規(guī)則

2010-09-28 11:48:36

SQL NULL值

2011-08-25 16:31:36

SQL Servertimestamp

2009-12-24 17:45:31

ADO查詢

2023-12-16 13:14:00

SQL子查詢技術(shù)

2010-09-28 14:06:43

Sql Server表

2011-08-18 13:31:44

SQL Server數(shù)子節(jié)點(diǎn)查詢所有父節(jié)點(diǎn)

2024-10-11 16:51:02

2011-04-15 11:43:24

SQL Server

2010-10-21 10:28:13

SQL Server查

2009-07-06 18:18:41

SQL Server全
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 2019天天干天天操 | 毛片免费观看 | av免费网站在线观看 | 午夜久久久 | 狠狠色综合久久婷婷 | 国产精品久久久久久一区二区三区 | 福利国产 | 视频一区二区三区中文字幕 | 97超碰在线播放 | 亚洲精品一区二区三区 | 综合网在线 | 国产午夜亚洲精品不卡 | 噜啊噜在线 | 精品久久久久一区二区国产 | www国产成人免费观看视频,深夜成人网 | 色吊丝在线| 精品视频一区二区三区在线观看 | 亚洲精品电影网在线观看 | 亚洲风情在线观看 | 日韩视频精品 | 麻豆av网站| 国产精品精品视频一区二区三区 | 欧美一区二区三区在线观看 | 在线国产一区二区 | 久久久久久久电影 | 国产在线精品一区二区三区 | 欧美日韩不卡合集视频 | 91麻豆精品国产91久久久久久 | 91在线精品秘密一区二区 | 成人毛片视频免费 | 国产精品夜间视频香蕉 | 国产视频亚洲视频 | 欧美伊人久久久久久久久影院 | 最新日韩在线 | 国产精品免费一区二区 | 欧美在线视频一区 | 四虎影院免费在线播放 | 成人午夜在线 | 日韩中文字幕在线视频观看 | 一级黄a| 亚洲一区二区三区在线观看免费 |