Oracle查詢語句的執行

查詢條件:

1)LIKE:模糊查詢,須要藉助兩個通配符,%:表示0到多個字符;_:標識單個字符。

2)IN(list):用來取出符合列表範圍中的數據。

3)NOT IN(list): 取出不符合此列表中的數據記錄。

4)BETWEEN…AND…:用來查詢符合某個值域範圍條件的數據,最多見的是使用在數字類型的數據範圍上,但對字符類型和日期類型數據也一樣適用。for example: SELECT ename, sal FROM emp WHERE sal BETWEEN 1500 AND 3000;

5)IS NULL:空值NULL是一個特殊的值,比較的時候不能使用」=」號,必須使用IS NULL,不然不能獲得正確的結果。

6)IS NOT NULL:與5相反。

7) >ANY : 大於最小 <ANY:小於最大 >ALL:大於最大 <ALL:小於最小
for example: SELECT empno, ename, job, sal, deptno FROM emp WHERE sal > ANY (345,3333,123)

8)DISTINCT:過濾重複。for example: SELECT DISTINCT deptno FROM emp

9)ORDER BY:對查詢出的數據按必定規則進行排序操做,ASC指定升序,DESC指定降序。

10)GROUP BY:把獲得的數據按照給定的字段進行分組,例如:把整個數據表按部門劃分紅一個個小組。

11)HAVING:HAVING子句用來對分組後的結果進一步限制,好比按部門分組後,獲得每一個部門的最高薪水,能夠繼續限制輸出結果。必須跟在GROUP BY後面,不能單獨存在。例如: SELECT deptno, MAX(sal) max_sal FROM emp GROUP BY deptno HAVING MAX(sal) >4000;


查詢語句的執行順序:

一、FROM 子句:執行順序爲從後往前、從右到左。數據量較少的表儘可能放在後面。

二、WHERE子句:執行順序爲自下而上、從右到左。將能過濾掉最大數量記錄的條件寫在WHERE 子句的最右。

三、GROUP BY:執行順序從左往右分組,最好在GROUP BY前使用WHERE將不須要的記錄在GROUP BY以前過濾掉。

四、HAVING 子句:消耗資源。儘可能避免使用,HAVING 會在檢索出全部記錄以後纔對結果集進行過濾,須要排序等操做。

五、SELECT子句:少用*號,儘可能取字段名稱。ORACLE 在解析的過程當中, 經過查詢數據字典將*號依次轉換成全部的列名, 消耗時間。

六、ORDER BY子句:執行順序爲從左到右排序,消耗資源。
spa

相關文章
相關標籤/搜索