經常使用操做
1.查看建立表參數express
提取完整的DDL:oracle
SELECT DBMS_METADATA.GET_DDL('TABLE','table_name') FROM DUAL;
2.指定返回記錄數函數
select XXX from XXX where rownum<n
3.查詢指定列的全部值且每一個值只顯示單條記錄:spa
select 須要查詢重複數據的列名
from 表名
group by 須要查詢重複數據的列名
4.oracle中的交集、差集、並集.net
- INTERSECT
- MINUS
- UNION / UNION ALL:union重複內容取惟一,union all沒有過濾重複內容
組函數
組函數:即聚合函數,對一組值執行計算,並返回單個值(COUNT除外)。code
- 聚合函數忽略空值。
- 聚合函數能夠用於select、having子句,不能夠用於where語句,由於where是對逐條記錄進行篩選。
- 經常使用聚合函數:
- AVG:返回平均值,空值被忽略
- COUNT:返回指定組中記錄的數量
- MAX
- MIN
- SUM:只能用於數字列,空值被忽略。
- COUNT_BIG:返回指定組中的項目數量,與COUNT函數不一樣的是COUNT_BIG返回bigint值,而COUNT返回的是int值。
- GROUPING:產生一個附加的列,當用CUBE或ROLLUP運算符添加行時,輸出值爲1.當所添加的行不是由CUBE或ROLLUP產生時,輸出值爲0.
- CHECKSUM:返回在表的行上或在表達式列表上計算的校驗值,用於生成哈希索引
- STDEV:返回給定表達式中全部值的統計標準誤差。
- VAR:返回統計方差
oracle的rownum用法
Rownum:是oracle自動分配給查詢返回行的編號,從1開始。這個字段能夠用於限制返回的總行數,可是rownum不能以任何表的名稱做爲前綴。blog
-
rownum對於等於某值的查詢條件:排序
- rownum都是從1開始,可是1以上的天然數在rownum作等於判斷是時認爲都是false條件
- 沒法查詢到
where rownum>n (n>1)
的記錄
- 能夠查到到
where rownum=1
的記錄
-
rownum對於大於某值的查詢條件索引
- 須要使用子查詢且rownum須要有別名:
select * from(select rownum no ,id from student) where no>2
-
rownum對於小於某值的查詢條件get
- 能夠直接用
where rownum<n
查詢
- 區間查詢則須要用子查詢。
-
rownum和排序
- rownum是系統按照記錄插入時的順序給記錄排的號。只能用子查詢實現排序。
報錯1:[Err] ORA-00979: not a GROUP BY expression
Oracle中 group by 規則:出如今select列表中的字段,若是沒有在組函數出現,那麼必須出如今group by 子句中。(即select列表中的字段不能夠單獨出現,必須在group語句或者組函數中。)
參考
參考1:http://blog.itpub.net/17203031/viewspace-688011/