程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle數據庫Where條件執行順序

Oracle數據庫Where條件執行順序

編輯:Oracle數據庫基礎
 

Oracle數據庫在當今數據庫市場上占有著一定的份額,所以掌握好Oracle數據庫也是非常有必要的,能夠掌握Oracle數據庫Where條件執行順序也會成為您在社會競爭中的有力條件。

由於SQL優化起來比較復雜,並且還會受環境限制,在開發過程中,寫SQL必須必須要遵循以下幾點的原則:

1.ORACLE采用自下而上的順序解析WHERE子句,根據這個原理,表之間的連接必須寫在其他WHERE條件之前, 那些可以過濾掉最大數量記錄的條件必須寫在WHERE子句的末尾.

例如:

(低效)

SELECT … FROM EMP E WHERE SAL > 50000 AND JOB = ‘MANAGER’ AND 25 < (SELECT COUNT(*) FROM EMP WHERE MGR=E.EMPNO);

(高效)

SELECT … FROM EMP E WHERE 25 < (SELECT COUNT(*) FROM EMP WHERE MGR=E.EMPNO) AND SAL > 50000 AND JOB = ‘MANAGER’;

2.SELECT子句中避免使用’*’

當在SELECT子句中列出所有的COLUMN時,使用動態SQL列引用 ‘*’ 是一個方便的方法.可是,這是一個非常低效的方法. 實際上,ORACLE在解析的過程中, 會將’*’ 依次轉換成所有的列名, 這個工作是通過查詢數據字典完成的, 這意味著將耗費更多的時間.

3.使用表的別名(Alias)

當在SQL語句中連接多個表時, 請使用表的別名並把別名前綴於每個Column上.這樣一來,就可以減少解析的時間並減少那些由Column歧義引起的語法錯誤.

注:Column歧義指的是由於SQL中不同的表具有相同的Column名,當SQL語句中出現這個Column時,SQL解析器無法判斷這個Column的歸屬。
 

Oracle數據庫中還涉及到更多的語句條件,本文就為大家介紹Where條件執行順序,大家好可以去了解更多的Oracle數據庫語句條件,希望上文中介紹的內容對大家能夠有所幫助。

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