程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> Oracle(零)--)偽列和分組聚合(Oracle開篇,比較初級啦~)

Oracle(零)--)偽列和分組聚合(Oracle開篇,比較初級啦~)

編輯:Oracle教程

Oracle(零)--)偽列和分組聚合(Oracle開篇,比較初級啦~)


寫在開篇~ 不知不覺已然到了開學的時候,畢竟這個大三連暑假還不知道是什麼就上崗了,看著周圍同學秀的簡直飛起 =。= 扯淡扯多了,再扯一句。。大三的時候學的 Oracle ,但是現在一想竟然不覺得有何內容,而且觸發器,存儲過程老師也沒有教過,自己也沒有看過,實在。。。畢竟華為工程師說的那句話還是依稀在眼前。。不管怎麼樣,先搞明白是何物,以後才在項目中知道該如何去使用。本流程基本按學習過程中 PPT 來走的,而再往前的東西概念太多,大家又不是很喜歡字,都愛看圖嘛~視頻就算了,太刺激了都受不了~哈哈。從偽列和sql函數開始談起~ 1、在討論偽列及分組聚合之前,先說一下 select 語句和 dinstinct 的使用和注意事項。 1)select 語句中的運算使用列別名 如果顯示數據庫中存儲的所有圖書的列表時,需要將列標題顯示為"Titil of books",可以在 select 子句中列名稱的後面列出列別名。 sql:SELECT title AS "Title of books",category FROM books; 注意可選關鍵字 AS,以便區分列別名和列名稱。 准則:如果列名稱包含空格、特舒符號或者不希望全部以大寫字母顯示它,那麼必須將它包含在 " " 中。如果只包含一個單詞,則不需要 " " 。 2)使用 distinct 和 unique 刪除重復的列。
2、偽列 1)Oracle 中偽列就像一個表列,但是它並沒有存儲在表中; 2)偽列可以從表中查詢,但不能插入、更新和刪除它的值; 3)常用的偽列有 ROWID 和 ROWNUM
ROWID:是表中行的存儲地址,該地址可以唯一的標識數據庫中的一行,可以使用 ROWID 偽列快速的定位表中的一行。
ROWNUM:是查詢返回的結果集中行的序號,可以使用它來限制查詢返回的行數。
3、常用的聚合函數(組函數) 也稱為多行函數,他們能處理每一行並返回一個結果,常用組函數:SUM、AVG、COUNT、MIN、MAX。
聚合函數是對於所有記錄進行聚合的,有時候我們需要先對記錄分組再進行聚合。 對記錄的分組是通過關鍵字 GROUP BY 實現的,如:group by f1,f2,f3,當且僅當兩條記錄在所有屬性在 f1、f2、f3 上達成一致,它們才是同一組的。 例:每一類圖書的平均利潤 sql:SELECT category,TO_CHAR(AVG(retail - cost),'999.99')as profit FROM books GROUP BY category.
GROUP BY 字句注意事項 1、如果在 select 子句中使用一個組函數,那麼在 select 子句中列出的單獨的列必須在 GROUP BY 子句中列出; 2、用來在 group by 子句中分組數據的列不必在 select 子句中列出,在 select 子句中包括它們只是為了在輸出中指定組; 3、不能在 group by 子句中使用列別名; 4、從包括 group by 子句的 select 語句返回的結果將以在 group by 子句中列出的列的升序顯示結果,要想以不同的順序顯示結果,可以使用 order by 子句。
HAVING 子句 1、用來限制一個查詢返回的組; 2、如果需要使用組函數來限制組,那麼必須使用 having 子句,因為 where 子句不能包含組函數。Having 子句指定了那些將顯示在結果中。即: having 子句充當了組的 where 子句。 例:顯示平均利潤超過 15 美元的圖書的種類 sql:SELECT category,TO_CHAR(AVG(retail - cost),'999.99')as profit FROM books GROUP BY category Having AVG(retail-cost)>15.
ORDER BY子句 1、用於末尾,默認升序
次排序 1、ORDER BY 子句只指定一列時,稱為"主排序",如果住排序中的兩行或更多行完全相同,那麼次排序提供了另一個進行排序的手段。 例:查詢按州降序排列的客戶,有多個居住在某個特定州的客戶時,將按城市的升序對客戶排序。 sql:SELECT lastname,firstname,city,state FROM customers ORDER BY state desc,city;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved