zoukankan      html  css  js  c++  java
  • 语法约定和标识符

    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 语句中使用标识符时,不符合这些规则的标识符必须由双引号或括号分隔。

  • 相关阅读:
    32位与64位操作系统到底有什么区别呢?
    chr()、unichr()和ord()
    Python map filter reduce
    as3.0横向渐变发光字
    Python time format
    Python 使用sys重定向
    as3.0给文字加纹理效果
    my first python
    字符编码(转)
    SWFTOOLS学习笔记一(转)
  • 原文地址:https://www.cnblogs.com/lihaqwq/p/12179914.html
Copyright © 2011-2022 走看看