查詢語句

any 和 all
不能單獨使用 需要與比較符號配合使用
>any 大於最小的
select * from emp where sal >any (1000,2000,3000) ;
<any 小於最大的
>all 大於最大的
<all 小於最小的

distinct 過濾重複關鍵字


聚合函數
即 數據統計
max(col) 
min(col)
avg(col)
sum(col)
count(col/*)
當使用count(column) 時,該字段含null值,計數器會將該null值的這一列忽略,所以會造成統計數據有誤差
其中的空值可以使用nvl 和 nvl2函數處理
select count(nvl(sal,0)) from emp ;


select * 
from tablename
where id = 1 
order by sal ;


查詢語句執行順序
from子句  
	執行順序從後往前,從右到左,故數據量較少的表儘量放在後面
	select t1.col , t2.col from t1 , t2 where t1.id = t2.id and t1.sal > 1000;
where 子句
	執行順序爲自上而下,從右到左,故將能過濾掉最大數量記錄的條件寫在where子句的最右
group 子句
	執行順序從左往右分組,故最好將group by 前使用where將不需要的記錄在group by 之前過濾掉
having 子句
	消耗資源 儘量避免使用,having會在檢索出所有記錄之後纔對結果集進行過濾,需要排序等操作。
	

group by 子句  分組 
當希望得到每個部門的平均薪水,而不是整個機構的平均薪水
把整個數據表按部門分成一個個小組,每個小組中包含一行或多行數據,在每個小組中在使用分組函數進行計算,每組返回一個結果
劃分的小組由多少,最終的結果集行數就有多少


having 子句
having子句用來對分組後的結果進一步限制,比如按部門分組後,得到每個部門的最高薪水,可以繼續限制輸出結果。
必須跟在group by 後面,不能單獨存在
	
	
select子句
	少用*號,儘量取字段名稱,oracle在解析的過程中,通過查詢數據字典將*號依次轉換成所有的列名,消耗時間
	
	
order by 子句 
	執行順序從左到右,消耗資源
order by 子句  對數據按一定規則進行排序操作   必須是查詢語句的最後一個子句
ASC(ascending )升序(默認)    DESC(descending )降序
null值視作最大
多列排序:
首先按照第一列進行排序,如果第一列數據相同,再以第二列排序,以此類推
例如:select ename , deptno , sal from emp order by deptno asc , sal desc ;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章