语法约定和标识符

1:语法约定

大写:表示Transact-SQL关键字

斜体:语法参数(由用户提供)

粗体:安全按照原样键入数据库名称、表格名称、列名、索引名、存储过程、实用工具、数据类型和文本

下划线:指示当前语句省略了的包含下划线的值的字句的应用的默认值

|:分割括号或者大括号中的语法项,只能使用其中一项

[ ] : 方括号代表可选语法项(不要键入方括号)

{}:大括号必选语法项.(不要键入大括号)

[,,,,,,,n]:前面的项可以重复N次,每项之间以‘,’间隔

[......n]:前面的项可以重复N次,每项之间以空格间

;  :T-SQL的终止符

<label>:语法快名称.可以对一条语句中的多个位置使用的过长的语法段OR语法单元进行分组和标记

关于对象的使用方式: Server_name.[database_name].[schema_name].object_name,为了避免名称解析错误,只有指定了架构范围内的对象就指定架构名称

注释:-- Ctrl+K,Ctrl+C/Ctrl+K,Ctrl+U

NULL和UNKNOWN:NULL表示空,该空表示未知含义,不同于空白和零值.会产生三值逻辑的运算,这也是很多应用程序出错的地方

1 & u u   1 | u 1
unknown & u u   u | u u
0 & u 0   0 | u u

USE:将数据库上下文改为指定数据库或者数据库快照

  USE {database_name} [ ; ]

:反斜杠将长字符串分成两行以方便阅读

GO:向SQL SERVER发出一批T-SQL已经结束的信号,两个GO之间的语句被编译成一个执行计划

  DEMON

    

    -- =============================================
    -- Create database template
    -- =============================================
    USE master
    GO

    -- Drop the database if it already exists
    IF EXISTS (
    SELECT name
    FROM sys.databases
    WHERE name = N'<Database_Name, sysname, Database_Name>'
    )  
    DROP DATABASE <Database_Name, sysname, Database_Name>
    GO

    CREATE DATABASE <Database_Name, sysname, Database_Name>
    GO

2:标识符

  2.1.标识符:即数据库对象的名称,SQL SERVER中所有的内容都可以有标识符,包括服务器数据库数据库对象(表视图列索引触发器过程约束以及规则)

大多数对象要求有标识符,但对有些对象(例如约束),标识符是可选的。

  对象标识符是在定义对象时创建的。 标识符随后用于引用该对象。 下列语句创建一个标识符为 TableX的表,该表中有两列的标识符分别是 KeyCol 和 Description,此外PRIMARY KEY约束没有标识符.

1 CREATE TABLE TableX
2 (KeyCol INT PRIMARY KEY, Description nvarchar(80))

  2.2.标识符种类:标识符分为常规标识符和分隔标识符

    常规标识符符合标识符的格式规则在分隔时不需要将其分开,分隔标识符包含在双引号 (" ") 或方括号 ([  ])中,对于合乎规则的标识符Delimiter is optional,但对于不合乎规则的标识符必须用分隔开来.

 1 SELECT *
 2 FROM TableX
 3 WHERE KeyCol = 124
 4 
 5 
 6 SELECT *
 7 FROM [TableX]         --Delimiter is optional.
 8 WHERE [KeyCol] = 124  --Delimiter is optional.
 9 
10 
11 SELECT *
12 FROM [My Table]      --Identifier contains a space and uses a reserved keyword.
13 WHERE [order] = 10   --Identifier is a reserved keyword.

  

  2.3.常规标识符规则:变量、函数和存储过程的名称必须符合 Transact-SQL 标识符的规则。

  1. 第一个字符必须是下列字符之一:

    • Unicode 标准 3.2 定义的字母, Unicode 中定义的字母包括拉丁字符 a-z 和 A-Z,以及来自其他语言的字母字符。

    • 下划线 ()、at 符号 (@) 或数字符号 (#)。

      在 SQL Server中,某些位于标识符开头位置的符号具有特殊意义。 以 at 符号开头的常规标识符始终表示局部变量或参数,并且不能用作任何其他类型的对象的名称。 以一个数字符号开头的标识符表示临时表或过程。 以两个数字符号 (##) 开头的标识符表示全局临时对象。 虽然数字符号或两个数字符号字符可用作其他类型对象名的开头,但是我们建议不要这样做。

      某些 Transact-SQL 函数的名称以两个 at 符号 (@@) 开头。 为了避免与这些函数混淆,不应使用以 @@ 开头的名称。

  2. 后续字符可以包括:

    • Unicode 标准 3.2 定义的字母。

    • 基本拉丁字符或其他国家/地区字符中的十进制数字。

    • at 符号、美元符号 ($)、数字符号或下划线。

  3. 标识符必须不能是 Transact-SQL 保留字。 SQL Server 保留保留字的大写和小写版本。 在 Transact-SQL 语句中使用标识符时,不符合这些规则的标识符必须由双引号或括号分隔。 保留字依赖于数据库兼容级别。 可通过使用 ALTER DATABASE 语句设置该级别。

  4. 不允许嵌入空格或特殊字符。

  5. 不允许使用增补字符。

         在 Transact-SQL 语句中使用标识符时,不符合这些规则的标识符必须由双引号或括号分隔。

原文地址:https://www.cnblogs.com/lihaqwq/p/12179914.html