顾美玲勾引管家|日韩黄色成人|国产精品theporn动漫|欧美日日日|国产精品探花在线

專業只做數據庫實訓和認證的品牌機構

微信公眾號新浪微博
免費咨詢電話:400-0909-964
當前位置: 網站首頁 > DBA實戰 > DBA課程 > Oracle基礎內容:子查詢(單行、any、all)

Oracle基礎內容:子查詢(單行、any、all)

文章來源: 更新時間:2016/7/20 14:03:31

在線老師點擊咨詢:

最新學訊:近期OCP認證正在報名中,因考試人員較多請盡快報名獲取最近考試時間,報名費用請聯系在線老師,甲骨文官方認證,報名從速!

我要咨詢

Oracle基礎內容:子查詢(單行、any、all),子查詢在SELECT、UPDATE、DELETE語句內部可以出現SELECT語句。內部的SELECT語句結果可以作為外部語句中條件子句的一部分,也可以作為外部查詢的臨時表。子查詢的類型有:

1. 單行子查詢:不向外部返回結果,或者只返回一行結果。

2. 多行子查詢:向外部返回零行、一行或者多行結果。

案例1:查詢出銷售部(SALES)下面的員工姓名,工作,工資。

案例分析

該問題可以用聯接查詢實現,由于所需的結果信息都在Emp表中,可以先從Dept表中查詢出銷售部對應的部門號,然后根據當前部門號再到Emp表中查詢出符合該部門的員工記錄即可。從銷售表中查詢出的結果可以作為Emp表中查詢的條件,SQL語句實現如下:

代碼演示:單行子查詢

SQL> SELECT ENAME,JOB,SAL FROM EMP

  2  WHERE DEPTNO=(SELECT DEPTNO FROM DEPT WHERE DNAME='SALES') 

  3  /

 ENAME

JOB

SAL

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

  2  WHERE SAL<ANY (SELECT SAL FROM EMP WHERE JOB='SALESMAN') 

  3  /

ENAME

JOB

SAL

SMITH

CLERK

800

JAMES

CLERK

950

ADAMS

CLERK

1100

WARD

SALESMAN

1250

MARTIN

SALESMAN

1250

MILLER

CLERK

1300

TURNER

SALESMAN

1500

 7 rows selected

代碼解析:

① any表示比子查詢結果中最小的還大。

案例3:查詢出比所有銷售員的工資都高的員工姓名,工作,工資。

案例分析

ANY可以表示任意的,但本案例中要求比所有銷售員工資都高,那么就要使用另外一個關鍵字ALL。ALL與關系操作符一起使用,表示與子查詢中所有元素比較。

代碼演示:ALL子查詢

SQL> SELECT ENAME,JOB,SAL FROM EMP

  2  WHERE SAL>ALL (SELECT SAL FROM EMP WHERE JOB='SALESMAN')  

  3  /

 ENAME

JOB

SAL

JONES

MANAGER

2975

BLAKE

MANAGER

2850

CLARK

MANAGER

2450

SCOTT

ANALYST

3000

KING

PRESIDENT

5000

FORD

ANALYST

3000

6 rows selected

代碼解析:

① >ALL:比子查詢結果中所有值還要大,也就是說,比子查詢結果中最大值還要大。

對于子查詢還可以使用IN和NOT IN操作符進行操作。

本文地址:http://www.mudan321.com/dba/kecheng/12524428477.html 轉載請注明!


PostgreSQL入門到精通 100+ 個學習資料

Oracle培訓機構

金牌講師<>

冉乃綱-老師CUUG金牌講師
冉老師 CUUG金牌講師 Oracle及RedHat高級講師、Unix/Linux 資深專家...[詳細了解老師]

免費咨詢上課流程 客服在線中

陳衛星-老師CUUG金牌講師
陳老師 CUUG金牌講師 精通Oracle管理、備份恢復、性能優化 11年Ora...[詳細了解老師]

免費咨詢上課流程 客服在線中

選學校如何選擇適合自己的學校

CUUG -CHINA UNIX USER GROUP,是國際UNIX組織UNIFORUM的中國代表,是國內悠久的專業UNIX培訓機構,被譽為中國UNIX 的搖籃。多年來,以提高教學質量為本,強調素質教育,積極引進、消化國外的新技術,有效的結合中國....[詳情]

一站式服務(從入學到就業一幫到底)

入學

學習

就業

實操

食宿
地址:北京市海淀區田村山南路35號院17號樓
課程咨詢: 400-0909-964
企業服務:137 1818 8639(陳經理)
部分信息來源于網絡,如有錯誤請聯系指正!
版權所有@北京神腦資訊技術有限公司 (CUUG,中國UNIX用戶協會) Copyright 2016 ALL Rights Reserved 京ICP備11008061號-1