日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

SQL——子查询

發(fā)布時間:2023/12/20 数据库 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQL——子查询 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

子查詢

一般而言在一個查詢中,可以嵌套另一個查詢,即在一個SELECT查詢內(nèi)在嵌入另一個SELECT查詢 ,外層的SELECT語句較外部查詢,內(nèi)層的SELECT語句叫子查詢,子查詢可以嵌套多層,但每層需要用“()”括起來,子查詢可以用在SELECT語句中,還可以用在INSERT,UPDATE,DELETE語句中 .子查詢是一個完整的的SELECT語句,是其他SOL語句的一部分,大部分子查詢是在SELECT語句的WHERE字句中實現(xiàn)的,也可以放在FROM字句中當虛擬表。

示例數(shù)據(jù)表如圖:

departments表:

employees表:

1.單行子查詢

指子查詢單列單行數(shù)據(jù),即只返回一個值,也可以成為單值子查詢。可以使用運算符=,>,<,<=,>=,<>,經(jīng)常用在SELECT,UPDATE,DELETE語句的WHERE字句中充當條件。

eg:查詢在銷售部工作的員工信息。

eg2:查詢工資低于平均工資的雇員信息。

? ??

?2.多行子查詢

指子查詢返回單列多行查詢,即一組數(shù)據(jù)。當子查詢是單列多行子查詢時,必須使用多行比較運算符,包括IN,NOT IN ,ANY,ALL,SOME.IN 和NOT IN 可以獨立使用,但ANY,和ALL必須與單行運算符組合起來使用:

<ANY:表示小于任何一個,即小于最大值即可。

=ANY:表示等于任何一個,與IN相似。

>ANY:表示大于任何一個,即大于最小值即可。

<ALL:表示小于所有值,即小于最小值。

>ALL:表示大于所有值,即大于最大值。

3.多列子查詢

多列子查詢獲得的是多列任意行數(shù)據(jù),當多列子查詢返回當行數(shù)據(jù)時相當于單行子查詢使用單行運算符(>,<,=等),返回多行數(shù)據(jù)時,在WHERE子句必須使用多行比較符(IN,NOT IN,ALL,ANY等)

eg:利用emp表查詢編號為7369的雇員的部門和工作崗位完全相同的所有雇員。(成對比較)

使用子查詢比較多列時,既可以使用成對比較也可以使用非成對比較?。成對比較要求多個列的數(shù)據(jù)必須同時匹配,非成對比較則不要求多個列的數(shù)據(jù)同時匹配,此時是單獨寫得查詢條件,各個條件之間是必須獨立的。

eg:利用emp表查詢編號為7369的雇員的部門和工作崗位完全相同的所有雇員。(非成對比較)

4.相關子查詢

內(nèi)部查詢的執(zhí)行依賴于外部查詢的數(shù)據(jù),外部查詢每執(zhí)行一次,內(nèi)部查詢也會執(zhí)行一次。

執(zhí)行過程:

  • 從外部查詢中取出一個元組,將元組相關列的值傳給內(nèi)層查詢。
  • 執(zhí)行內(nèi)層查詢,得到子查詢操作的值
  • 外查詢根據(jù)子查詢返回的結果或結果集得到滿足的條件的行。
  • 然后外層查詢?nèi)∠乱粋€元組重復上述步驟,直到外層的元組全部處理完畢。

eg1:查詢所有部門人數(shù)

語句1:連接查詢

eg2:相關子查詢

?

eg2:查詢各部門的部門號,部門名和平均工資。

語句1:連接查詢

語句2:相關查詢

:?

?eg3:查詢在北京工作的員工信息

語句1:連接查詢

?

語句2:IN

eg4:帶EXISTS的相關子查詢

是通過EXISTS運算符實現(xiàn)的查詢,EXISTS用于測試子查詢的結果是否為空,如果子查詢的結果不為空,則EXISTS發(fā)揮TRUE,否則返回false,與EXSITS相對應的有EXISTS.

?

?

?

?

總結

以上是生活随笔為你收集整理的SQL——子查询的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。