-
group by 后不可以使用子查詢
查看全部 -
select語句后面的子查詢必須是一個單行子查詢
【語句只返回一條記錄就是單行子查詢,返回多條記錄就是多行子查詢】
查看全部 -
子查詢注意點
1.可以使用位置:where, select, having, from
2.不可以使用位置:group by
3.重點--from后面的子查詢
4.主查詢和子查詢可以不是同一張表
5.一般不在子查詢中使用排序,但Top-N分析問題例外,它必須對子查詢排序
6.一般先執行子查詢,再執行主查詢,但相關子查詢例外
7.單行子查詢只能使用單行操作符,多行子查詢只能使用多行操作符
8.子查詢中null值問題
查看全部 -
層次查詢
某些情況下,可以替代自連接
本質上,是一個單表查詢
自連接:
select level【偽列,表示樹的深度】, empno, ename, sal, mgr
from emp
connect by prior empno=mgr【前者的員工號等于后者的老板號,在樹中即上一層的員工號等于當前層的老板號】
start with mgr is null;【從沒有老板的那個員工即樹的根節點開始遍歷整棵樹】
//相當于 start with empno=某個員工號【遍歷以該員工為根節點的樹】;
order by 1;
查看全部 -
自連接
涵義:通過別名,將同一張表視為多張表
查看全部 -
外連接
涵義:通過外連接,把對于連接條件不成立的記錄,仍然包含在最后的結果中。
外連接寫法與說法相反:
右外連接【在等號的左邊寫個(+)】
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;
查看全部 -
between and
必須小值在前,大值在后,若顛倒會出現未選定行錯誤。
查看全部 -
等值連接
多表中的同樣屬性等值,以此為連接點
查看全部 -
給表起別名
from 表名 別名(表名+空格+別名);
查看全部 -
多表查詢
等值連接
不等值連接
外連接
自連接
層次查詢
查看全部 -
讀取執行電腦文件
get 磁盤名稱:\...\... .sql
@磁盤名稱:\...\... .sql
查看全部 -
報表
ttile col 15 ‘我的報表’col 35 sql.pno【空15列寫標題,空35列顯示報表頁碼】
col xxx1 heading xxx2;【為第xxx1列設置別名xxx2】
查看全部 -
在select列表中所有未包含在組函數中的列都應該包含在group by子句中
查看全部 -
分組函數會自動濾掉空值,可使用nvl函數屏蔽分組函數的濾空功能,nvl(arg1,arg2),單第一個參數為空則返回第二個自參數的值。
查看全部 -
avg函數與sum函數
min函數與max函數
count函數,可加distinct關鍵字
查看全部
舉報