今天給大家分享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,AddressFROM Resources.UserInfoWHERE Name='小明'AND Age>25 ;
7、 使用分組
存在多行Transact-SQL的情況下,相關語句之間可以直接換行書寫,而對于兩個步驟之間的語句可以間隔一個空行。根據需要也可以加入適當的注釋語句。
例如:
USE DB;GO-- 讀取 UserInfo 表的數據SELECT *FROM UserInfo;GO
IT技術分享社區
個人博客網站:https://programmerblog.xyz
文章推薦程序員效率:畫流程圖常用的工具程序員效率:整理常用的在線筆記軟件遠程辦公:常用的遠程協助軟件,你都知道嗎?51單片機程序下載、ISP及串口基礎知識硬件:斷路器、接觸器、繼電器基礎知識