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

歡迎訪問 生活随笔!

生活随笔

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

数据库

SQL的 子查询

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

1、子查詢
在查詢語句中包含著有另外一條查詢語句,被包含的查詢語句稱為子查詢,包含著子查詢的查詢就稱為父查詢??傊?#xff0c;子查詢就是在查詢語句里嵌套一條或者多條查詢語句。
子查詢也可以稱為內部查詢或內部選擇,而包含子查詢的語句稱為外部查詢或者外部選擇
1.1子查詢的語法規則:
子查詢的select查詢總使用圓括號括起來
不能包括compute或for browse子句
如果同時指定top子句,則可能只包括order by子句
子查詢最多嵌套32層,個別查詢可能會不支持32層嵌套
任何可以使用表達式的地方都可以使用子查詢,主要它返回的是單個值
如果某個表只出現在子查詢中而不出現在外部查詢中,那么該表中的列就無法包含在輸出中
1.2 語法格式:
where 查詢表達式 [not] in(子查詢)
where 查詢表達式 比較運算符 [any|all] (子查詢)
where [not] exists (子查詢)

假設Books表如下:

然后顯示單條數據的情況,這個是高于平均價格的數據

2、嵌套查詢
嵌套查詢是指將一個查詢塊嵌套在另一個查詢塊的where子句或having短語的條件中的查詢。嵌套查詢中上層的查詢塊稱為外側查詢或父查詢,下層查詢塊稱為內層查詢或子查詢。SQL語言允許多層嵌套,但是在子查詢中不允許出現order by子句,order by子句只能用在最外層的查詢中。
嵌套查詢的處理方法是:先處理最內側的子查詢,然后一層一層地向上處理,直到最外層的查詢塊。
2.1簡單的運算符有=、<>、<、>、<= 、>=
舉一個簡單的例子

帶IN的嵌套查詢

帶EXISTS

2、Any 是一個邏輯運算符 ,它將標量值與子查詢返回的單列值集進行比較。它將值與子查詢返回的一組進行比較。any運算符必須要結合比較運算符使用,雖然說我也沒用過
條件 含義
C=ANY(…) c列中的值必須與集合中的一個或多個值匹配,以評估為true。
c!=ANY(…) c列中的值不能與集合中的一個或多個值匹配以評估為true。
C>ANY(…) c列中的值必須大于要評估為true的集合中的最小值。
c<ANY(…) c列中的值必須小于要評估為true的集合中的最大值。
C>=ANY(…) c列中的值必須大于或等于要評估為true的集合中的最小值。
C<=ANY(…) c列中的值必須小于或等于要評估為true的集合中的最大值。
2、ALL運算符是一個邏輯運算符,它將標量值與子查詢返回的單列值列表進行比較。
他和ANY是不一樣的。他們是區別是:
All:只有當其所有數據都滿足條件時,條件才成立
Any:只要有一條數據滿足條件,條件就成立
以下是SQL ALL運算符的語法:
WHERE column_name comparison_operator ALL (subquery)
SQL ALL運算符必須以比較運算符開頭,例如:>,>=,<,<=,<>,=,后跟子查詢。 某些數據庫系統(如Oracle)允許使用文字值列表而不是子查詢。這個all我也沒用過,就是老師給的文檔中的東西!
ALL的基本含義:
條件 描述
c > ALL(…) c列中的值必須大于要評估為true的集合中的最大值。
c >= ALL(…) c列中的值必須大于或等于要評估為true的集合中的最大值。
c < ALL(…) c列中的值必須小于要評估為true的集合中的最小值。
c <= ALL(…) c列中的值必須小于或等于要評估為true的集合中的最小值。
c <> ALL(…) c列中的值不得等于要評估為true的集合中的任何值。
c = ALL(…) c列中的值必須等于要評估為true的集合中的任何值。

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。