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及串口基础知识硬件:断路器、接触器、继电器基础知识

posted @ 2021-03-07 07:45  天使不哭  阅读(22)  评论(0编辑  收藏  举报  来源