與oracle 有關的那點事

經常使用操做

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

  1. rownum對於等於某值的查詢條件:排序

    1. rownum都是從1開始,可是1以上的天然數在rownum作等於判斷是時認爲都是false條件
    2. 沒法查詢到 where rownum>n (n>1)的記錄
    3. 能夠查到到where rownum=1的記錄
  2. rownum對於大於某值的查詢條件索引

    1. 須要使用子查詢且rownum須要有別名:select * from(select rownum no ,id from student) where no>2
  3. rownum對於小於某值的查詢條件get

    1. 能夠直接用 where rownum<n 查詢
    2. 區間查詢則須要用子查詢。
  4. rownum和排序

    1. 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/

相關文章
相關標籤/搜索