今天给大家分享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子句。
代码语言:javascript复制 SELECT ID, Name, BirthDate,Address
FROM Resources.UserInfo
WHERE Name='小明'
AND Age>25 ;
7、 使用分组
存在多行Transact-SQL的情况下,相关语句之间可以直接换行书写,而对于两个步骤之间的语句可以间隔一个空行。根据需要也可以加入适当的注释语句。
例如:
代码语言:javascript复制 USE DB;
GO
-- 读取 UserInfo 表的数据
SELECT *
FROM UserInfo;
GO