SQL語句編寫規範

2021-08-06 05:53:20 字數 2012 閱讀 8862

1.注釋

不換行的簡單注釋,在注釋文字前用" -- "

多行的注釋用 " /*   ....   */"

2.大小寫規範

sql語句中的所有保留字均需大寫,且不要使用縮寫

例: all, as,case,create,jion,left,right,not, on,out,scelect,table,view等

3.縮排與換行

將sql語句按照子句分行編寫,以select、from、where、update、insert為起始另起一行,盡量        對齊各子句的起始位置

1. 逗號放在每行欄位的開頭。

2. 分號放在sql語句的末尾。

3. 每行寬度不超過120字元(每個字元為8個點陣寬),超過行寬的**應換行並與上行對齊編排。

4. 把as部分和相應字段放在同一行。

5. 當多個字段包含「as」時,建議盡量將各「as」對齊在同一列上。

6. 同一子句中,應排齊「where」、「and」、「or」這三個單詞的末尾。

注:縮排時不建議使用tab,建議使用4個空格。

4. 子查詢巢狀

對於複雜語句,**的分層編排非常重要,一般對巢狀語句的格式有以下兩點要求:

1. 對應的括號應盡量排在同一列。

2. 同一級別的子句內部要對齊。

5. 表別名

1. 表別名建議以簡單字元命名。

2. 多層次的巢狀子查詢別名需體現層次關係。

3. 對於同一層的多個子句,建議別名採用相同字首附加不同數字字尾(1、2、3…)的形式,以便識別與區

分子句關係。

4. 在需要的情況下對錶別名新增注釋

6. 運算子前後間隔要求

算術運算子、邏輯運算子的前後至少保留乙個空格。

7. 臨時表

在語句中盡量使用可變臨時表,通過臨時表的使用體現邏輯和加工的流程

8. group by / order by

在查詢語句的order by和group by操作中,允許使用者用字段序號代表字段,例如「group by[第乙個字段]」

可以寫為「group by 1」。但是不允許欄位名和序號同時出現,應保證採用一種模式時,不出現另一種模

式。group by和order by的示例中的兩種寫法是等價的,但不能混用。

9. 字段型別

欄位在做比較或轉換的時候應該使用顯式的寫法對資料做處理,以防止因欄位格式的差異導致執行失敗,

如:• 文字:在訪問文字欄位時建議做trim()處理,去除多餘空格。例如,table_a.name的某值

為』lucy',table_b.name的某值為』lucy ',若不進行處理,在做name等值匹配時這兩條的比較結果將

是false。

• 日期: 執行日期相關運算時,必要時應用形如「cast(『20121231』as date format 『yyyymmdd』)」的

語句做格式轉化,防止錄入資料時以string型別儲存的日期字段,在計算時被視為表達時間的特有型別

(如date、timestamp)處理,導致結果異常。

sql語句編寫規範

在使用sql查詢時,要提高查詢的效率,我們要盡可能的優化where後的子句,使查詢能走索引,索引查詢的效率更高.索引的優先順序 聚簇索引 非聚簇唯一索引 非聚簇非唯一索引 不走索引 具體包括 1.要使用索引,首先搞清楚,什麼情況下查詢走索引,這樣就能方便我們對己有的sql 優化.2.在where子句...

plslq 語句編寫規範

專案測試過程發現,公司測試無問題,客戶測試報錯,經過現場分析,發現為plsql中編寫批量插入語句,沒有明確指明表的字段導致。因為客戶端資料表的字段順序和公司資料庫表字段順序不一致導致。1400 位置 ora 01400 cannot insert null into pmsdata tfz grad...

資料庫架構更新Sql語句編寫規範

l 建立資料庫表 下例顯示 pubs 資料庫中所建立的三個表 jobs employee 和publishers 的完整表定義,其中包含所有的約束定義。create table 表名 欄位名1 資料型別 是否允許為 null,欄位名2 資料型別 是否允許為 null 例如 create table ...