Oracle子查詢
當不能一步求解時,可以考慮使用子查詢。
1.語法
SELECT select_list
FROM table
WHERE expr operator
(SELECT select_list
FROM table);
子查詢 (內查詢)在主查詢之前一次執行完成。
子查詢的結果被主查詢使用 (外查詢)。
2.注意事項
1.子查詢要包含在括號內。
2.將子查詢放在比較條件的右側。
3.在主查詢的select, from, where, having都可以放子查詢
4.不可以在主查詢的group by放子查詢
5.主查詢和子查詢可以不是用一張表,只要子查詢返回的結果主查詢可以使用,即可
6.單行操作符對應單行子查詢,多行操作符對應多行子查詢。
select後面放子查詢要求該子查詢必須是單行子查詢。
3.子查詢型別
①單行子查詢
②多行子查詢
4.單行子查詢
子查詢只返回一行結果。
①單行子查詢
select * from emp where ename =
(select ename from emp where empno = '7369')
②子查詢中使用組函式
select * from emp where sal =
(select max(sal) from emp)
③子查詢中HAVING子句
select deptno,min(sal)
from emp
group by deptno
having min(sal) >
(select min(sal) from emp where deptno = 20);
④select後子查詢
select empno,(select max(empno) from emp) from emp;
5.多行子查詢
①IN操作符,或者NOT IN
select * from emp where empno in (select empno from emp);
②ANY操作符
小於某集合中的任意一個值,就是小於集合中的最大值。
大於某集合中的任意一個值,就是大於集合中的最小值。
例,查詢工資比10號部門任意一個員工工資低的員工資訊
select * from emp
where sal <
any(select sal from emp where deptno = 10);
## 相當於
select * from emp
where sal <
(select max(sal) from emp where deptno = 10);
select * from emp
where sal >
any(select sal from emp where deptno = 10);
## 相當於
select * from emp
where sal >
(select min(sal) from emp where deptno = 10);
③ALL操作符
小於某集合中的所有值,就是小於最小值。
大於某集合中的所有值,就是大於最大值。
例,查詢工資比10號部門所有員工工資低的員工資訊
select * from emp
where sal <
all(select sal from emp where deptno = 10);
## 相當於
select * from emp
where sal <
(select min(sal) from emp where deptno = 10);
select * from emp
where sal >
all(select sal from emp where deptno = 10);
## 相當於
select * from emp
where sal >
(select max(sal) from emp where deptno = 10);
相關推薦
oracle 子查詢
哪些 nvl 操作 最大值 rom 區別 1=1 group 多列 6-1:子查詢簡介 6-2: select * from scott.emp where sal=(select MIN(sal) from scott.emp)
Oracle子查詢和多表查詢
左外連接 查詢 sele 多表查詢 字段 ora 需要 avg lar 多表查詢需要用到表的連接 連接可以分為:(自行百度) 交叉連接(數字邏輯的笛卡爾積,不做解釋) 等值連接 例如:select * from t_a, t_b where t_a.
Oracle子查詢相關內容(包含TOP-N查詢和分頁查詢)
職位 oracle子查詢 員工 having 信息 不同 group 最大 mount 本節介紹Oracle子查詢的相關內容: 實例用到的數據為oracle中scott用戶下的emp員工表,dept部門表,數據如下: 一、子查詢 1、概念:嵌入在一個查詢中的另一個
oracle 子查詢和組合函式
oracle 子查詢和組合函式 --查詢與“SCOTT”在同一個部門的員工 select empno,ename,deptno from emp where deptno in (select deptno from emp where ename='SCOTT'); --查詢不在銷售部和財務部工作的僱
Oracle 子查詢的基本語法以及使用原則
在整個SQL查詢語句過程中,子查詢並不具備特殊的語法,在整個SQL查詢操作子句中:SELECT、 FROM 、WHERE 、GROUB BY 、HAVING 、 ORDER BY。 如果非要給出子查詢的語法,那麼只能怪進行拼湊。
Oracle子查詢的注意問題
1. 子查詢中小括號,子查詢要用()包起來 select * from emp where sal>(select * from emp where ename=’likang’) 2. Oracle子查詢書寫風格 縮緊、對齊、換行等等,便於觀察 3.
oracle 子查詢中null的問題(in 和 not in)
這裡的in後面的句子可以理解為or拼接,簡單舉例即 in (9566,9839,null)可以等價於mgr=9566 or mgr=9839 or mgr=null, not in (9566,9839,null)可以等價於not(mgr=9566 or mgr=9839 o
oracle子查詢和表連線
有如下兩張表:部門表和教師表 1、查詢出招生部門所有男老師姓名(子查詢放在where語句中) select tname, deptno from teacher where deptno in (select deptno from dept where dname='
Oracle-子查詢
子查詢在企業中用的是最多的,功能強大,效率比較高,所以子查詢應該是學習的重點、 1、any操作符 1.1、=any 功能與in操作符是完全一樣的 1.2、>any 比子查詢中返回記錄的最小的還要大的資料 1.3、<any 比子查詢中返回記錄的最大的還要小的
Oracle子查詢
當不能一步求解時,可以考慮使用子查詢。 1.語法 SELECT select_list FROM table WHERE expr operator (SELECT select_list FROM table); 子查詢 (內查詢)在主查詢之前一次執行
Oracle 子查詢等常見的sql語句
oracle 對於漢字,如果資料庫字元編碼為 GBK 佔用2個位元組,如果是UTF-8則佔用3個位元組。 1.建表 create table student(); create table class(id number primary key,name varchar(2
Oracle-子查詢/復雜查詢實例
dna 單列 name pre min 需要 查詢語句 判斷 temp 子查詢的應用範圍: WHERE: 一般返回單行單列,單行多列,多行單列 HAVING:子查詢如果出現在HAVING中,只有一種情況就是子查詢返回單行單列數據,且需要進行統計函數計算 FROM:返回多行多
Oracle 子查詢,按降序排列,取前n條
比如,有一個student 表: id student_name 1 s1 2 s2 03
oracle 子查詢 where having from ,from子查詢提高效率
如果 clas 性能問題 查詢 嵌入 區別 group 一個 col where 子查詢主要功能是控制數據行的,返回結果一般都是單行單列、多行單列、單行多列數據 單行單列 SELECT * FROM emp WHERE hiredate=( S
Oracle DB 使用子查詢來解決查詢
目的 滿足 多少 group 錯誤 water 列表 功能 產生 ? 定義子查詢 ? 描述子查詢可以解決的問題類型 ? 列出子查詢的類型 ? 編寫單行和多行子查詢 ? 子查詢:類型、語法和準則 ? 單行子查詢: – 子查詢中的組函數 – 帶有子查詢的HAVING子句
徹底搞懂oracle的標量子查詢
article pop acc 問題 content 狀態 cat tracking varchar2 oracle標量子查詢和自己定義函數有時用起來比較方便,並且開發者也常常使用。數據量小還無所謂。數據量大,往往存在性能問題。 下面測試幫助大家徹底搞懂標量子查
oracle學習之多表查詢,子查詢以及事務處理
color 1-1 註意事項 員工 列數 .com 外連接 分析 top-n分析 多表查詢的基礎是采用笛卡爾集: 最終的行數 = 表1的行數 * 表2的行數 最終的列數 = 表1的列數 + 表2的列數 過濾笛卡爾集的關鍵是寫連接條件,N張表至少需要N-1個條件。 多表
oracle之子查詢、創建用戶、創建表、約束
pre 條件 不為 varchar 作用 rim 修改 特點 刪除一個用戶 子查詢 子查詢可以分為單行子查詢和多行子查詢 單行子查詢 [1] 將一個查詢的結果作為另外一個查
Oracle【子查詢】
只有一個 一次 oracle子查詢 註意 需要 rac class 存在 pre Oracle子查詢:當一個查詢依賴於另外一個查詢的結果的時候,就需要使用子查詢。單行子查詢 :篩選條件不明確,需要執行一次查詢且查詢結果只有一個字段且字段值只有一個。註意:where子句中允許
Oracle作業5——多表查詢、子查詢
一、基礎練習: 1.查詢和scott相同部門的員工姓名ename和僱用日期hiredate SELECT ENAME,HIREDATE FROM EMP WHERE DEPTNO=(SELECT DEPTNO FROM EMP WHERE ENAME='SCOTT'); 2.查詢在部門的l