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 ;
查詢語句
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.