新聞中心
由于SQL優(yōu)化起來比較復(fù)雜,并且還會受環(huán)境限制,這就要求編寫程序員在開發(fā)過程中,寫SQL必須必須要遵循以下幾點(diǎn)的原則:

成都創(chuàng)新互聯(lián)成都網(wǎng)站建設(shè)按需求定制設(shè)計(jì),是成都網(wǎng)站營銷公司,為木托盤提供網(wǎng)站建設(shè)服務(wù),有成熟的網(wǎng)站定制合作流程,提供網(wǎng)站定制設(shè)計(jì)服務(wù):原型圖制作、網(wǎng)站創(chuàng)意設(shè)計(jì)、前端HTML5制作、后臺程序開發(fā)等。成都網(wǎng)站制作熱線:13518219792
1.ORACLE采用自下而上的順序解析WHERE子句,根據(jù)這個(gè)原理,表之間的連接必須寫在其他WHERE條件之前, 那些可以過濾掉***數(shù)量記錄的條件必須寫在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子句中避免使用’*’
當(dāng)在SELECT子句中列出所有的COLUMN時(shí),使用動(dòng)態(tài)SQL列引用 ‘*’ 是一個(gè)方便的方法.可是,這是一個(gè)非常低效的方法. 實(shí)際上,ORACLE在解析的過程中, 會將’*’ 依次轉(zhuǎn)換成所有的列名, 這個(gè)工作是通過查詢數(shù)據(jù)字典完成的, 這意味著將耗費(fèi)更多的時(shí)間.
3.使用表的別名(Alias)
當(dāng)在SQL語句中連接多個(gè)表時(shí), 請使用表的別名并把別名前綴于每個(gè)Column上.這樣一來,就可以減少解析的時(shí)間并減少那些由Column歧義引起的語法錯(cuò)誤.
注:Column歧義指的是由于SQL中不同的表具有相同的Column名,當(dāng)SQL語句中出現(xiàn)這個(gè)Column時(shí),SQL解析器無法判斷這個(gè)Column的歸屬。
違背這三條原則的SQL的編寫都是不合格的,而合格的程序編寫都是在這三條原則的前提下,所以要想成為一名合格的SQL程序編寫員,就得首先掌握這些原則,俗話說的好:無規(guī)矩不成方圓,這些原則就是規(guī)矩。
【編輯推薦】
- 在SQL Server數(shù)據(jù)庫開發(fā)中的十大問題
- 巧用SQL進(jìn)行數(shù)據(jù)累加
- SQL Server數(shù)據(jù)庫六種數(shù)據(jù)移動(dòng)方法
當(dāng)前題目:寫SQL必須必須要遵循的原則
路徑分享:http://fisionsoft.com.cn/article/dhgejos.html


咨詢
建站咨詢
