oracle sql書寫規範

2021-06-23 04:32:48 字數 2003 閱讀 8505

一、書寫規範

1、sql編寫時,大小寫一致

2、關鍵字單佔一行,如select、from、where、and、group by、order by等

3、注意行縮排和對齊,建議語句中的關鍵字右對齊

4、使用空格,sql語句內的算術運算子、邏輯運算子(and、or、not)、 比較運算子(=、<=、>=、>、<、<>、between and)、in、like等運算子前後都應加一空格。

5、對較為複雜的sql語句加上注釋,說明演算法、功能。

注釋風格:注釋單獨成行、放在語句前面。

單行注釋:--

多行注釋:/*    */

6、多表連線時,使用表的別名來引用列。

7、select後面的每一列(列數目大於1)單獨佔一行,where後面的每個條件(條件數大於1)單獨佔一行。

8、update set子句內容每一項單獨佔一行,無縮排。

9、insert子句內容每個表字段單獨佔一行,無縮排;values每一項單獨佔一行,無縮排 。

二、書寫優化效能建議

1、關鍵sql語句,盡量簡化,不要包含太多的巢狀,避免執行計畫錯誤的可能,原則上不能超過2層。

2、sql語句包含多表連線時,建議使用表別名,對每個欄位的使用都要帶上表別名,例如: select a.col1, a.col2, b.col3 from table_name a, tableb b where a.col4=b.col5;

3、使用select語句時,禁止使用select * ,應當指出具體查詢的欄位名,例如:select col1,col2,col3,… from table_name;。

4、使用insert語句時,禁止使用 insert into table_name values(?,?,?),不應不指定欄位名直接插入values,應指定插入的欄位名,例如: insert into table_name (col1, col2,…) values(?,?,…)

5、避免在where使用'1=1','1=2'這種表示式作為部分條件,例如: select col1, col2 from table_name where 1=1 and col1 >0。

6、在進行多條記錄的增加、修改、刪除時,建議使用批量提交,降低事務的提交頻度。

7、sql語句要繫結變數實現sql語句的共享,禁止使用常量

8、盡量少用表之間的巢狀連線。

9、盡量使用exists、not exists 替代 in、not in(大部份情況下exists 、not exists的效能都比in 、not in 好)。

10、使用union 的時候如果沒有去除重複資料的要求,建議盡量用union all替代。

11、盡量避免使用order by和group by排序操作,因為大量的排序操作影響系統效能。如必須使用排序操作,盡量建立在有索引的列上。 

12、索引的建立應慎重考慮,不是越多越好。索引可以提高相應的select的效率,但同時也降低了insert、update 的效率。

13、where 條件中的索引列應避免使用<>、not、 is null、is not null、 like 『%***x%』、』%***』、oracle系統函式等,這些常會使索引失效。

14、避免不必要的型別轉換

15、in、or子句常會使用工作表,使索引失效;如果不產生大量重複值,可以考慮把子句拆開;拆開的子句中應該包含索引。

16、使用rowid提高檢索速度。對select得到的單行記錄,需進行delete、update操作時,使用rowid將會使效率大大提高。

17、系統可能選擇基於規則的優化器,所以將結果集返回資料量小的表作為驅動表(from後邊最後乙個表)。

18、盡量避免對索引列進行計算。如對索引列計算較多,請讓資料庫管理員建立函式索引。

19、盡量不用聯合列比如:a||b=c||d。

20、主鍵盡量不要用oracle指定的名稱,要自己根據表來命名。

21、任何對列的操作都將導致表掃瞄,它包括資料庫函式、計算表示式等等,查詢時要盡可能將操作移至等號右邊。

22、復合索引建立時,建議按欄位可選性高低進行排序,即字段值多的排在前面。

oracle SQL書寫注意問題

1.在oracle中實現select top n 由於oracle不支援select top語句,所以在oracle中經常是用order by跟rownum的組合來實現select top n的查詢。簡單地說,實現方法如下所示 select 列名 列名 from select 列名 列名 from ...

CSS 書寫規範

本文是參考了css森林中的規範,並結合之前幾個專案積累所書寫的乙個基本規範。不敢說是原創,所以鄭重感謝一下css森林。同時,本文件也處於持續改進中。1.基本 css檔案中,選擇器書寫按照 標籤 標籤偽類 id 類 覆蓋 排序,同一型別寫在一起 進行覆蓋時,也按照這樣乙個順序。css定義中,屬性的書寫...

xml書寫規範

xml也就是擴充套件標識語言,可以實現跨平台,真正做到資料和顯示分離,對於webservices等其他網路上資料的傳輸等較多使用。下邊根據個人理解簡單介紹一下xml的一些規範。1 xml文件有且只有乙個根標籤,所謂的根標籤就是一對 根標籤 和就是根標籤了 2 xml文件內沒乙個開始標籤都必須對應乙個...