-
自連接? 通過別名 將一張表視為多張表
查看全部 -
where a.deptno(+)=b.deptno --右外連接? 包含b.deptno??當連接條件不成立的時候,等號右邊的表仍然被包含
where a.deptno=b.deptno(+) --左外連接
查看全部 -
group by 語句的增強
select deptno,job,sum(sal) from emp group by rollup(dept,job);
group by rollup(a,b)=group by a,b+group by a+group by null
查看全部 -
分組函數(shù)的嵌套 max(avg(sal))
查看全部 -
order by desc降序
查看全部 -
where/having都是按條件篩選
where 后面不能使用組函數(shù) having都可以
從優(yōu)化角度 盡量用where
having 先分組,后過濾
where 先過濾,后分組
查看全部 -
在select 列表中所有未包含在組函數(shù)中的列都應(yīng)該包含在group by子句中
查看全部 -
avg(comm)=sum(comm)/count(comm)
avg(nvl(comm,0))=sum(comm)/count(*)
nvl(comm,0) 為空時返回0不為空時返回實際值
查看全部 -
select count(distinct deptno)from emp;? --distinct 去除重復(fù)項
查看全部 -
多行子查詢的空值問題:
--查詢所有不是老板的員工
?select * from emp where empno
not?in?--?只要子查詢中的結(jié)果集包含空值,不要使用not?in 因為not?in?等同與?<>?all?比如:?a?not?in?(10,20,null) 這句話的意思是?a?!=?10?&&?a?!=?20?&&?a?!=?null
(
? ? ?select mgr from emp --員工表中的老板號
)?
查看全部 -
nvl(comm,0),使組函數(shù)統(tǒng)計為空的條數(shù),當comm為空時返回0,不為空時返回自己的值查看全部
-
desc tablename 可以查詢表的結(jié)構(gòu)查看全部
-
wm_concat行轉(zhuǎn)列
select deptno 部門號,wm_concat(ename) 部門中員工的姓名 from emp group by deptno;
查看全部 -
去重 select count(distinct deptno) from emp;
查看全部 -
多表查詢,與子查詢,可以實現(xiàn)同樣的結(jié)果,但是哪種效率高?
理論上,多表查詢的效率高,因為只有一個from,讀去一次數(shù)據(jù)庫;但是,多表查詢會產(chǎn)生笛卡爾集,如果數(shù)據(jù)量大,笛卡爾集很大,查詢的效率可能比子查詢要低,所以要根據(jù)實際情況選擇到底是多表查詢還是子查詢;
查看全部
舉報