21種好的SQL編程習慣

來源:互聯網
上載者:User

1、大小寫
大寫T-SQL 語言的所有關鍵字,謂詞和系統函數。變數名稱及遊標名稱使用Pascal樣式。資料類型定義使用全部小寫。
 
2、使用“;”
使用“;”作為 Transact-SQL 陳述式終止符。雖然分號不是必需的,但使用它是一種好的習慣。
 
3、儲存格式
盡量採用Unicode資料存放區格式,提高可移植性和相容性,實際應用中盡量使用nchar、nvarchar、ntext代替char、varchar、text。
 
4、 類型選擇
如果字元具有明確的長度,使用nchar代替nvarchar;char代替varchar。
在只有兩個可能數值時,使用bit代替int或smallint。
在SQL Server 2005中,使用nvarchar(MAX)代替ntext;varchar(MAX)代替text;varbinary(MAX)代替image。
在特殊的資料表結構中可考慮xml資料類型,達到事半工倍的效果。
 
5、預設值
在建立資料表時,盡量使用預設值代替NULL值。比如設定CreatedDate列預設值為GETDATE()。在可行的情況下設定欄位為不允許空。
 
6、欄位長度
始終指定字元資料類型的長度,並確保允許使用者可能需要的最大字元數,避免超出最大長度時出現字元丟失現象。對於字元型資料,建議採用2的n次方來定義資料長度。
樣本:nvarchar(32)
  varchar(64)
 
7、 使用“'”
在 T-SQL 代碼中為字元常量使用單引號,避免使用雙引號。
 
8、語句縮排
一個嵌套代碼塊中的語句使用四個空格的縮排。使用Microsoft SQL Server Management Studio ,選擇“工具”菜單,開啟“選項”菜單,在選項對話方塊中選擇文字編輯器->純文字->定位字元,選中“插入空格單選框”,設定“定位字元大小”為4,縮排大小為“4”。
 
9、語句換行
建議SQL代碼每行以關鍵字或“'”開頭。
 
10、   語句分割
使用一個(而不是兩個)空行分隔 T-SQL 代碼的邏輯塊。
 
11、   使用“*”
盡量避免在任何代碼中使用 “SELECT *”。
 
12、  表名別名
表名別名要簡短,但意義要盡量明確。通常使用大寫的表名作為別名,使用 AS 關鍵字指定表或欄位的別名。
 
13、  類型轉換
不要依賴任何隱式的資料類型轉換,不要假定 T-SQL 會進行必要的轉換。例如,把數字變數賦予字元值。相反,在為變數賦值或比較值之前,應使用適當的 CONVERT 函數使資料類型相匹配。
 
14、  數值比較
不要將空的變數值直接與比較子(符號)比較。如果變數可能為空白,應使用 IS NULL 或 IS NOT NULL 進行比較,或者使用 ISNULL 函數。
 
15、   排序
決不要依賴 SELECT 語句會按任何特定順序返回行,除非在 ORDER BY 子句中指定了順序。通常,應將 ORDER BY 子句與 SELECT 語句一起使用。可預知的順序(即使不是最方便的)比不可預知的順序強,尤其是在開發或調試過程中。在返回行的順序無關緊要的情況下,可以忽略 ORDER BY ,減少資源開銷。
 
16、  Unicode字串
在Unicode字元前面使用N首碼,避免引起資料的不一致。
 
17、  BEGIN...END 塊
在SQL代碼快中盡量使用BEGIN...END 語句塊,提高代碼可閱讀性。
 
18、   TRY塊
在SQL Server 2005中對一些可能執行失敗的語句盡量使用TRY塊。Transact-SQL 陳述式組可以包含在 TRY 塊中,如果 TRY 塊內部發生錯誤,則會將控制傳遞給 CATCH 塊中包含的另一個語句組。
 
19、   TOP子句
在SQL Server 2005中加強了TOP的使用,盡量使用TOP(變數)來減少SQL拼串現象。
 
20、  TRANSACTION編寫
只要在常式中使用多個資料庫修改語句,包括在一個迴圈中多次執行一個語句,就應考慮聲明明確交易。在SQL SERVER 2005 中,增加了TRY塊可進行很好的應用。
 
21、  預存程序
在編寫預存程序時,使用PROCEDURE 代替 PROC 簡寫。

本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/zyaccp30/archive/2010/03/24/5408859.aspx

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.