-
in? 等于列表中的任何一個
any 和子查詢返回的任意一個值比較
all 和子查詢返回的所有值比較
查看全部 -
單行子查詢只能使用單行操作符;多行子查詢只能使用多行操作符
查看全部 -
select empno,ename,sal,(select avg(sal) from emp where deptno=e.deptno) avgsal?
from emp e?
where sal> (select avg(sal) from emp where deptno=e.deptno);
查看全部 -
rownum? 行號? 偽劣
行號永遠按照默認的順序生成
行號只能使用<, <=;不能使用>,>=
select rownum,empno,ename,sal?
from (select * from emp order by sal desc)?
where rownum<=3;
查看全部 -
select e.*?
from emp e,dept d?
where e.deptno=d.deptno and d.dname='SALES';? ?等于下面的查詢
查看全部 -
select *??
from emp?
where deptno=(select deptno?
? ? ? ? ? ? ? ? ? ? ? ? ? from dept?
? ? ? ? ? ? ? ? ? ? ? ? ? where dname='SALES');
查看全部 -
select *?
from emp?
where sal>(select sal?
????????????????????from emp?
? ? ? ? ? ? ? ? ? ? where ename='SCOTT');
select * from emp where sal>(select sal from emp where ename='SCOTT');? ? ? ?-- where字句后的子查詢
2.? select empno,ename,sal, (select job from emp where empno=7838)? 第四列
from emp? ? ? --在select子句后的子查詢必須是單行只查詢(只返回一條記錄)
3.select deptno,avg(sal)?
from emp?
group by deptno?
having avg(sal) >(select max(sal) from emp where deptno=30);
4.select *?
from (select empno,ename,sal from emp);
查看全部 -
子查詢注意的10個問題
子查詢語法中的小括號
2.子查詢的書寫風格
3.可以使用子查詢的位置:where select? having from
4.不可以使用子查詢的位置:group by
5.強調:from后面的子查詢
6.主查詢和子查詢可以不是同一張表
7.一般不在子查詢中,使用排序;但在Top-N分析問題中,必須對子查詢排序。
8.一般先執行子查詢,再執行主查詢;但相關子查詢例外
9.單行子查詢只能使用單行操作符;多行子查詢只能使用多行操作符
10.注意:子查詢中是null值問題。
查看全部 -
自連接存在的問題
不適合操作大表。
解決辦法:層次查詢
層次查詢在某些情況下,可以替代自連接,本質上是一個單表查詢。
查看全部 -
select e.ename 員工姓名,b.bname 老板姓名?
from emp e,emp b?
where e.mgr=b.empno;
自連接? 一張表取兩個別名。
查看全部 -
自連接 核心:通過別名,將同一張表視為多張表
查看全部 -
select d.deptno 部門號, d.dname 部門名稱 ,count(e.empno) 人數?
from emp e,dept d?
where e.deptno(+)=d.deptno?
group by d.deptno,d.dname;
右外連接。在左邊加(+)
左外連接。在右邊加(+)
查看全部 -
select d.deptno 部門號 ,d.dname 部門名稱 ,count(e.empno) 人數?
from emp e,dept d?
where e.deptno=d.deptno?
group by? d.deptno,d.dname;
查看全部 -
外連接
核心:通過外連接,把對于連接條件不成立的記錄,仍然包含在最后的結果中
左外連接:當連接條件不成立的時候,等號左邊的表仍然被包含
右外連接:當連接條件不成立的時候,等號右邊的表仍然被包含。
查看全部 -
外連接:核心:通過外連接,把對于連接條件不成立的記錄,仍然包含在最后的結果中。
查看全部
舉報