常用操作 1.查看創建表參數 提取完整的DDL: SELECT DBMS_METADATA.GET_DDL('TABLE','table_name') FROM DUAL; 2.指定返回記錄數 select XXX from XXX where rownum<n 3.查詢指定列的所有值且每個值只顯示 ...
常用操作
1.查看創建表參數
提取完整的DDL:
SELECT DBMS_METADATA.GET_DDL('TABLE','table_name') FROM DUAL;
2.指定返回記錄數
select XXX from XXX where rownum<n
3.查詢指定列的所有值且每個值只顯示單條記錄:
select 需要查詢重覆數據的列名
from 表名
group by 需要查詢重覆數據的列名
4.oracle中的交集、差集、並集
- INTERSECT
- MINUS
- UNION / UNION ALL:union重覆內容取唯一,union all沒有過濾重覆內容
組函數
組函數:即聚合函數,對一組值執行計算,並返回單個值(COUNT除外)。
- 聚合函數忽略空值。
- 聚合函數可以用於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不能以任何表的名稱作為首碼。
-
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需要有別名:
-
rownum對於小於某值的查詢條件
- 可以直接用
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/