程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> Oracle中的一些查詢語句及其執行順序

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

編輯: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子句:執行順序為從左到右排序,消耗資源。

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