Oracle子查詢例項講解

2021-12-30 07:11:15 字數 1395 閱讀 7800

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...