购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.1 Transact-SQL概述

在前面的章节中,其实已经使用了Transact-SQL语言,只是没有系统地对该语言进行介绍。事实上不管应用程序的用户界面如何,与SQL Server实例通信的所有应用程序都通过将Transact-SQL语句发送到服务器进行通信。

对数据库进行查询和修改操作的语言叫作SQL,其含义是结构化查询语言(Structured Query Language)。SQL有许多不同的类型,有3个主要的标准:① ANSI(美国国家标准机构)SQL;②对ANSI SQL修改后在1992年采纳的标准,称为SQL92或SQL2;③最近的SQL99标准。SQL99标准从SQL2扩充而来并增加了对象关系特征和许多其他新功能。其次,各大数据库厂商提供不同版本的SQL。这些版本的SQL支持原始的ANSI标准,而且在很大程度上支持新推出的SQL92标准。

Transact-SQL语言是SQL的一种实现形式,它包含了标准的SQL语言部分。标准的SQL语句几乎完全可以在Transact-SQL语言中执行,因为包含了这些标准的SQL语言来编写应用程序和脚本,所以提高了它们的可移植性。Transact-SQL语言在具有SQL的主要特点的同时,还增加了变量、运算符、函数、流程控制和注释等语言因素,使得T-SQL的功能更加强大。另外,在标准的ANSI SQL99之外,Transact-SQL语言根据需要又增加了一些非标准的SQL语言。在有些情况下,使用非标准的SQL语言,可以简化一些操作步骤。

3.1.1 什么是Transact-SQL

Transact-SQL(T-SQL)是Microsoft公司在关系型数据库管理系统SQL Server中的SQL3标准的实现,是微软对SQL的扩展。在SQL Server中,所有与服务器实例的通信,都是通过发送T-SQL语句到服务器来实现的。根据其完成的具体功能,可以将T-SQL语句分为4大类,分别为数据操作语句、数据定义语句、数据控制语句和一些附加的语言元素。

数据操作语句:

     SELECT,INSERT,DELETE,UPDATE

数据定义语句:

数据控制语句:

     GRANT,DENY,REVOKE

附加的语言元素:

3.1.2 T-SQL语法的约定

表3-1列出了T-SQL参考的语法关系图中使用的约定,并进行了说明。

表3-1 语法约定

除非另外指定,否则所有对数据库对象名的T-SQL引用将由4部分名称组成,格式如下:

     server_name .[database_name].[schema_name].object_name
     | database_name.[schema_name].object_name
     | schema_name.object_name
     | object_name

主要参数介绍如下:

引用某个特定对象时,不必总是指定服务器、数据库和架构供SQL Server数据库引擎标识该对象。但是,如果找不到对象,就会返回错误消息。

除了使用时完全限定引用时的4个部分,在引用时若要省略中间节点,则需要使用句点来指示这些位置。表3-2显示了引用对象名的有效格式。

表3-2 引用对象名格式

许多代码示例用字母N作为Unicode字符串常量的前缀。如果没有N前缀,则字符串被转换为数据库的默认代码页。此默认代码页可能不识别某些字符。

3.1.3 标识符的命名规则

为了提供完善的数据库管理机制,SQL Server设计了严格的对象命名规则。在创建或引用数据库实例(如表、索引、约束等)时,必须遵守SQL Server的命名规则,否则可能发生一些难以预测和检测的错误。

1. 标识符分类

SQL Server的所有对象,包括服务器、数据库及数据对象,如表、视图、列、索引、触发器、存储过程、规则、默认值和约束等都可以有一个标志符。对绝大多数对象来说,标识符是必不可少的,但对某些对象来说,是否规定标志符是可以选择的。对象的标志符一般在创建对象时定义,作为引用对象的工具使用。

SQL Server一共定义了两种类型的标识符:规则标识符和界定标识符。

2. 规则标识符

规则标识符严格遵守标识符有关的规定,所以在T-SQL中凡是规则标识符都不必使用界定符,对于不符合标识符格式的标识符要使用界定符[]或单引号‘’。

3. 界定标识符

界定标识符是那些使用了如[]和‘’等界定符号来进行位置限定的标识符,使用界定标识符既可以遵守标识符命名规则,也可以不遵守标识符命名规则。

4. 标识符规则

标识符的首字符必须是以下两种情况之一:

标识符首字符后的字符可以是下面3种情况:

标识符不允许是T-SQL的保留字:T-SQL不区分大小写,所以无论是保留字的大写还是小写都不允许使用。

标识符内部不允许有空格或特殊字符:某些以特殊符号开头的标识符在SQL Server中具有特定的含义。如“@”开头的标识符表示这是一个局部变量或是一个函数的参数;以“#”开头的标识符表示这是一个临时表或存储过程;一个以“##”开头的标识符表示这是一个全局的临时数据库对象。T-SQL的全局变量以标识符“@@”开头,为避免同这些全局变量混淆,建议不要使用“@@”作为标识符的开始。

无论是界定标识符还是规则标识符都最多只能容纳128个字符,对于本地的临时表最多可以有116个字符。

5. 对象命名规则

SQL Server数据库管理系统中的数据库对象名称由1~128个字符组成,不区分大小写。在一个数据库中创建了一个数据库对象后,数据库对象的前面应该有服务器名、数据库名、包含对象的架构名和对象名4个部分。

6. 实例的命名规则

在SQL Server数据库管理系统中,默认实例的名字采用计算机名,实例的名字一般由计算机名和实例名两部分组成。

正确掌握数据库的命名和引用方式是用好SQL Server数据库管理系统的前提,也便于用户理解SQL Server数据库管理系统中的其他内容。 u4gm5BY4TPxNN8au+sCMnBfNqVytMzlIMghV1TnrdguJqS901aSpSLpcuXrSMJLm

点击中间区域
呼出菜单
上一章
目录
下一章
×