oracle基礎內容:子查詢(單行、any、all),子查詢在select、update、delete語句內部可以出現select語句。內部的select語句結果可以作為外部語句中條件子句的一部分,也可以作為外部查詢的臨時表。子查詢的型別有:
單行子查詢:不向外部返回結果,或者只返回一行結果。
多行子查詢:向外部返回零行、一行或者多行結果。
案例1:查詢出銷售部(sales)下面的員工姓名,工作,工資。
案例分析
該問題可以用聯接查詢實現,由於所需的結果資訊都在emp表中,可以先從dept表中查詢出銷售部對應的部門號,然後根據當前部門號再到emp表中查詢出符合該部門的員工記錄即可。從銷售表中查詢出的結果可以作為emp表中查詢的條件,sql語句實現如下:
**演示:單行子查詢
sql> select ename,job,sal from emp
where deptno=(select deptno from dept where dname='sales') ①
/ ename
jobsal
allen
salesman
1600
ward
salesman
1250
martin
salesman
1250
blake
manager
2850
turner
salesman
1500
james
clerk
950
6 rows selected
**解析:
① 內部查詢的結果作為外部查詢的條件。
需要注意:
`如果內部查詢不返回任何記錄,則外部條件中欄位deptno與null比較永遠為假,也就是說外部查詢不返還任何結果。
`在單行子查詢中外部查詢可以使用=、>、=、<=、<>等比較運算子。
`內部查詢返回的結果必須與外部查詢條件中的字段(deptno)匹配。
`如果內部查詢返回多行結果則出現錯誤。
案例2:查詢出emp表中比任意乙個銷售員(「salesman」)工資低的員工姓名、工作、工資。
案例分析
銷售員在emp表中有很多條記錄,每個人工資不相等,如果返回「比任意員工的工資還低」的條件,返回比「最高工資還低」即可。如果用子查詢做,子查詢中就會返回多條記錄。用普通的關係符(>、等)執行就會出錯。這時候需要用關鍵字any。any放在比較運算子後面,表示「任意」的意思。
**演示:any子查詢
sql> select ename,job,sal from emp
where sal
mongo多表查詢例項講解
這裡主要是說 lookuplookup就是使用aggregate的 lookup屬性 user表 ordersitem 表 lookuplookup作為內嵌試用是比較耗費時間的 我們應該盡力避免使用,資料量比較大的情況下經常會導致查詢失敗 因本人也是初學 所以以部落格的形式記錄下最近的使用心得 上面...
mysql連線查詢例項 例項講解MySQL連線查詢
mysql連線查詢相信大家都有所了解,連線查詢是在資料庫查詢操作的時候肯定要用到的,下面就為您介紹mysql連線查詢的用法,供您參考學習。首先我們做兩張表 員工資訊表和部門資訊表,在此,表的建立只為講述連線的概念,所以字段非常的簡單 employeetb 員工資訊表 employeeid emplo...
Mysql子查詢例項
一,子選擇基本用法 1,子選擇的定義 子迭擇允許把乙個查詢巢狀在另乙個查詢當中。比如說 乙個考試記分專案把考試事件分為考試 t 和測驗 q 兩種情形。下面這個查詢就能只找出學生們的考試成績 select from score where event id in select event id fro...