SQLServer书写规范梳理

2021-03-18 15:15:19 浏览数 (1)

今天给大家分享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

0 人点赞