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 ...