SQLServer書寫規範梳理

今天給大家分享SQLServer書寫規範筆記,希望對大家能有所幫助!


1、在名稱中僅使用字母、數字和下劃線

要在名稱中僅使用字母、數字和下劃線,主要是因爲這些字符可以被方便的移植到編程語言中。在應用程序的數據庫和編程語言中能夠使用相同的屬性字段名稱,這樣就能省去了字段起別名的工作量。

有一些特殊情況。例如,在SQL Server中臨時表名稱需要以“#”號開頭,#號在編程語言中具有特殊含義。如果必須使用臨時表,則只能使用“#”。

此外,參數名稱也存在這種情況,它需要以“@”開頭。在名稱中應該儘量避免使用特殊符號是一個非常正確的選擇。

注意:不要將下劃線作爲名稱的第一個或最後一個字母,這樣不利於代碼的閱讀。

2、列名、參數和變量等標量應儘量小寫

一般情況下,小寫字母比大寫字母閱讀體驗更佳。閱讀小寫文本的速度比大寫的速度快5%~10%。當名稱由兩個以上單詞組合而成時,爲便於閱讀,應當採用大小寫混合的寫法。個人建議採用駝峯命名的方式更容易閱讀。

3、模式對象名首字母應該大寫

模式對象包括數據表、視圖和存儲過程等,在創建這些名稱時,應當將首字母大寫,表示爲專有名詞。

4、保留關鍵字應該大寫

保留關鍵字屬於Transact-SQL語言語法的一部分,主要用於定義、操作和訪問數據庫預留的字符。將保留關鍵字大寫後,能起到一種突出效果,使整個語句重點突出、結構清晰、可讀性高。

SQL Server保留關鍵字:

     ADD | ALL | ALTER | AND | ANY | AS | ASC | AUTHORIZATION

     BACKUP | BEGIN | BETWEEN | BREAK | BROWSE | BULK | BY

     CASCADE | CASE | CHECK | CHECKPOINT | CLOSE | CLUSTERED | COALESCE

     COLLATE | COLUMN | COMMIT | COMPUTE | CONSTRAINT | CONTAINS

     CONTAINSTABLE | CONTINUE | CONVERT | CREATE | CROSS | CURRENT

     CURRENT_DATE | CURRENT_TIME | CURRENT_TIMESTAMP | CURRENT_USER

     CURSOR

     DATABASE | DBCC | DEALLOCATE | DECLARE | DEFAULT | DELETE | DENY

     DESC | DISK | DISTINCT | DISTRIBUTED | DOUBLE | DROP | DUMP

 ELSE | END | ERRLVL | ESCAPE | EXCEPT | EXEC | EXECUTE | EXISTS

     EXIT | EXTERNAL

     FETCH | FILE | FILLFACTOR | FOR | FOREIGN | FREETEXT | FREETEXTTABLE

     FROM | FULL | FUNCTION

     GOTO | GRANT | GROUP

     HAVING | HOLDLOCK

     IDENTITY | IDENTITY_INSERT | IDENTITYCOL | IF | IN | INDEX | INNER | INSERT

     INTERSECT | INTO | IS

     JOIN

     KEY | KILL

     LEFT | LIKE | LINENO | LOAD

     MERGE |

     NATIONAL | NOCHECK | NONCLUSTERED | NOT | NULL | NULLIF

     OF | OFF | OFFSETS | ON | OPEN | OPENDATASOURCE | OPENQUERY | OPENROWSET

     OPENXML | OPTION | OR | ORDER | OUTER | OVER

     PERCENT | PIVOT | PLAN | PRECISION | PRIMARY | PRINT | PROC

     PROCEDURE | PUBLIC

     RAISERROR | READ | READTEXT | RECONFIGURE | REFERENCES | REPLICATION

     RESTORE | RESTRICT | RETURN | REVERT | REVOKE | RIGHT | ROLLBACK

     ROWCOUNT | ROWGUIDCOL | RULE

     SAVE | SCHEMA | SECURITYAUDIT | SELECT | SEMANTICKEYPHRASETABLE

     SEMANTICSIMILARITYDETAILSTABLE | SEMANTICSIMILARITYTABLE

     SESSION_USER | SET | SETUSER | SHUTDOWN | SOME | STATISTICS | SYSTEM_USER

     TABLE | TABLESAMPLE | TEXTSIZE | THEN | TO | TOP | TRAN | TRANSACTION

     TRIGGER | TRUNCATE | TRY_CONVERT | TSEQUAL

     UNION | UNIQUE | UNPIVOT | UPDATE | UPDATETEXT | USE | USER

     VALUES | VARYING | VIEW

     WAITFOR | WHEN | WHERE | WHILE | WITH | WITHIN GROUP | WRITETEXT

5、合理的使用空格

在語言標記之間放置一個空格,儘量地符合英語書寫習慣,可以增強語句的可閱讀性。

1.等號兩邊使用空格

在書寫賦值語句時,應當在等號兩邊使用空格分隔,如SET @age = 30比SET @age=30更容易閱讀。

2.逗號後面使用空格

應當遵循在逗號後面使用空格的原則,因爲英語中逗號和句號很容易混淆加空格更有利於發現SQL書寫錯誤的問題。

6、使用縮進的規範

合理的使用縮進會使SQL語句的層次和邏輯關係更加清晰,一般都是縮進2個空格。例如,在下面的語句中,AND關鍵詞連接了兩個篩選條件,縮進後會更加突出WHERE子句。


      SELECT ID, Name, BirthDate,Address
FROM Resources.UserInfo
WHERE Name='小明'
AND Age>25 ;



7、 使用分組

存在多行Transact-SQL的情況下,相關語句之間可以直接換行書寫,而對於兩個步驟之間的語句可以間隔一個空行。根據需要也可以加入適當的註釋語句。

例如:


      USE DB;
GO

-- 讀取 UserInfo 表的數據
SELECT *
FROM UserInfo;
GO


IT技術分享社區


個人博客網站:https://programmerblog.xyz


文章推薦 程序員效率:畫流程圖常用的工具 程序員效率:整理常用的在線筆記軟件 遠程辦公:常用的遠程協助軟件,你都知道嗎? 51單片機程序下載、ISP及串口基礎知識 硬件:斷路器、接觸器、繼電器基礎知識







本文分享自微信公衆號 - IT技術分享社區(gh_a27c0758eb03)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章