Oracle中的一些查詢語句及其執行順序,oracle語句

來源:互聯網
上載者:User

Oracle中的一些查詢語句及其執行順序,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;


查詢語句的執行順序:

1、FROM 子句:執行順序為從後往前、從右至左。資料量較少的表盡量放在後面。

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

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

4、HAVING 子句:消耗資源。盡量避免使用,HAVING 會在檢索出所有記錄之後才對結果集進行過濾,需要排序等操作。

5、SELECT子句:少用*號,盡量取欄位名稱。ORACLE 在解析的過程中, 通過查詢資料字典將*號依次轉換成所有的列名, 消耗時間。
 
6、ORDER BY子句:執行順序為從左至右排序,消耗資源。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.