用SQL进行嵌套查询
用SQL進行嵌套查詢
在SELECT查詢語句里可以嵌入SELECT查詢語句,稱為嵌套查詢。
也可將內嵌的SELECT語句稱為孒查詢,子查詢形成的結果又成為父查詢的條件。
子查詢可以嵌套多層,子查詢操作的數據表可以是父查詢不操作的數據表。
子查詢中不能有Group?BY分組語句
1.簡單嵌套查詢
語句范例?:
select?單價表.客戶,?單價表.產品名,?單價表.單價;
from?單價表;
where?單價表.產品名?=?(select?產品表.產品名;
from?產品表?;
where?產品表.產品ID?=?"102-5000")
說明:
查詢得到單價表里滿足產品名為產品表里產品ID為“102-5000”的產品的相關信息
2.帶【in】的嵌套查詢
語句范例?:
select?雇員表.雇員編號,?雇員表.姓名,?雇員表.職位,?雇員表.薪水;
from?雇員表?;
where?薪水?in?(select??薪水?from?雇員表?where?姓名='張三')
說明:
查詢得到雇員表里滿足薪水符合姓名為張三的薪水的所有雇員的相關信息,比如?in(1000,1500,2000)表示薪水=1000或1500或2000的情況。注:此語句完成的查詢薪水和張三相等的職員,也可以使用【not?in】來進行相反的查詢
3.帶【any】的嵌套查詢
語句范例?:
select?雇員表.雇員編號,雇員表.姓名,?雇員表.職務,?雇員表.薪水;
from?雇員表;
where?薪水>?any?(select?薪水?from?雇員表?where?職務=‘工程師’)
說明:
查詢得到薪水比職務為工程師的薪水都要高的職員信息。例如子查詢結果為(2000,1500,1000),父查詢的條件為"薪水>2000?or?薪水>1500?or?薪水>1000"
4.帶【some】的嵌套查詢
語句范例?:
select?雇員表.雇員編號,雇員表.姓名,?雇員表.職務,?雇員表.薪水;
from?雇員表;
where?薪水=?some?(select?薪水?from?雇員表?where?職務=‘工程師’)
說明:
查詢得到薪水和職務為工程師的薪水一樣的職員信息,也就是和任意一個工程師的薪水相等的職員信息。例如子查詢結果為(2000,1500,1000),父查詢的條件為"薪水=2000?or?薪水=1500?or?薪水=1000"。
帶【any】的嵌套查詢和【some】的嵌套查詢功能是一樣的。早期的SQL僅僅允許使用【any】,后來的版本為了和英語的【any】相區分,引入了【some】,同時還保留了【any】關鍵詞。
5.帶【all】的嵌套查詢
語句范例?:
select?雇員表.雇員編號,雇員表.姓名,?雇員表.職務,?雇員表.薪水;
from?雇員表;
where?薪水>?all?(select?薪水?from?雇員表?where?職務=‘工程師’)
說明:
查詢得到薪水比任一工程師薪水都要高的職員信息。例如子查詢結果為(2000,1500,1000),父查詢的條件為"薪水>2000?and?薪水>1500?and?薪水>1000"。
6.帶【exists】的嵌套查詢
語句范例?:
select?雇員表.雇員編號,?雇員表.姓名,?雇員表.職務,?雇員表.薪水;
from?雇員表,?部門表?;
where?exists?(select?*?;
from?雇員表?;
where?雇員表.部門編號?=?部門表.部門編號)
說明:
查詢得到雇員表和部門表的部門編號相匹配的所有雇員信息。
7.并操作【union】的嵌套查詢
語句范例?:
(select?部門編號?from?雇員表)?union?(select?部門編號?from?部門表)
說明:
并操作就是集合中并集的概念。屬于集合A或集合B的元素的總和就是并集。注:該操作的嵌套查詢要求屬性具有相同的定義,包括類型和取值范圍。
8.交操作【intersect】的嵌套查詢???
語句范例?:
(select?部門編號?from?雇員表)?intersect?(select?部門編號?from?部門表)
說明:
交操作就是集合中交集的概念。屬于集合A且屬于集合B的元素的總和就是交集。注:該操作的嵌套查詢要求屬性具有相同的定義,包括類型和取值范圍。
9.差操作【minus】的嵌套查詢
語句范例?:
(select?部門編號?from?部門表)?minus?(select?部門編號?from?雇員表)
說明:
差操作就是集合中差集的概念。屬于集合A(前一個孒查詢結果)且不屬于集合B(后一個孒查詢結果)的元素的總和就是差集。注:該操作的嵌套查詢要求屬性具有相同的定義,包括類型和取值范圍。
?
轉載于:https://www.cnblogs.com/qxpgwww/archive/2012/08/15/2639945.html
總結
以上是生活随笔為你收集整理的用SQL进行嵌套查询的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用BluePrint进行Web页面设计
- 下一篇: linux cmake编译源码,linu