没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
第 4 章 使用 Transact-SQL 编程
(简称 )是 标准 数据库查询语言的一个强大实现,
是一种数据定义、操作和控制语言。 是 编程的重要工具,
也是 编程的基础。
无论是数据库管理员还是数据库程序设计员,都必须熟练掌握该语言,以进
行数据库设计、维护和编程,与 进行交互工作,从而构建高效的数据库
应用程序。
本章将介绍 编程语言,及其语法元素和语句类型。同时,也将介绍通过
编程管理数据库事务,来实现维护数据库的一致性和完整性的目的;通过
编程创建锁,以解决发生事务并发问题等高级编程操作。
本章学习目标:
了解 语言类型
掌握 编程语法
熟悉 和 操作符的使用
掌握事务的概念及其运用
了解事务产生的并发问题
了解锁模式及如何查看锁
掌握游标的声明及使用
4.1 Transact-SQL 概述
语言是一种交互查询语言,具有功能强大、简单易学的特点。该
语言是结构化查询语言()的增强版本,与多种 标准兼容,而且在标
准的基础上还进行了许多扩展。
4.1.1 Transact-SQL 语言与 SQL 语言
语言是微软公司对 语言的扩展。不同的数据库供应商一方面
采纳 语言作为自己数据库的操作语言,另一方面又对 语言进行不同程度的
扩展,而这些扩展往往又是 语言的下一个版本的主要实践来源。接下来,我们
先来对 语言进行简单的介绍。
(,机构化查询语言)是国际标准化组织()
采纳的标准数据库语言。该语言是由美国国际标准协会()和国际标准化组织
()定义的标准, 是 公司对此标准的一个实现。
语言既允许用户直接查询存储在数据库中的数据,也可以把语句
嵌入到某种高级程序设计语言中来使用,例如可以嵌套到 !
语言中。 在关系数据库管理系统中,可以实现数据的检索、操纵和添
加等功能,它同其他程序设计语言一样,有自己的数据类型、表达式、关键字等 。
当然,该语言与其他语言相比,要简单得多,主要有如下 " 个特点。
一体化 Transact-SQL 语言集数据定义语言、数据操纵语言、数据控制语言元素为一
体。其中,附加语言元素不是标准 SQL 语言的内容,但是它增加了用户对数据库操
纵的灵活性和简便性,从而增强了程序的功能。
使用方式 Transact-SQL 语言有两种使用方式,即交互使用和嵌入高级语言使用。统
一的语法结构使 Transact-SQL 语言可用于所有用户的数据库活动模型,包括系统管理
员、应用程序员、决策支持系统管理人员以及许多其他类型的终端用户。
非过程化语言 Transact-SQL 语言只需要提出“干什么”,不需要指出“如何干”,语言的
操作过程有系统自动完成。另外,Transact-SQL 语言不要求用户指定对数据的存储方
法,所有的 Transact-SQL 语句都使用查询优化器,用以指定数据以最快速度存取手段。
人性化 Transact-SQL 语言继承 SQL 语言易学易用的特点,并符合人们的思维方式,
因此非常容易理解和掌握。
4.1.2 Transact-SQL 语言类型
在 #$$% 系统中, 可以创建、维护、保护数据库对象,
并且可以操作对象中的数据,所以 语言是一种完整的语言。根据
语言的执行功能特点,可以将 语言分为三种类型:数据
定义语言、数据操纵语言和数据控制语言。
1.数据定义语言
数据定义语言(&&'(,&&)是 中最基本的语言类型,
它用于创建数据库和各种数据库对象,如表、视图、存储过程等。创建了数据库
对象后,才可能为其他语言的操作提供所要使用的对象。
在数据定义语言中,主要的 语言包括 )!! 语句、!) 语句和 &)
语句。)!! 语句用来创建数据库及各种数据库对象;!) 语句用来修改数据库
及其他数据库对象;&) 语句则用来删除数据库及数据库对象。
2.数据操纵语言
数据操纵语言(&*(,&)是用来操纵数据库中的数
据语句。当使用数据定义语言创建了数据库及表后,使用数据操纵语言便可以实
现在表中查询、插入、更新、删除数据等操纵。数据操纵语言主要包括的语句有 :
!! 语句、!) 语句、&! 语句、&!!! 语句、)) 语句等。
3.数据控制语言
数据控制语言(&,&)是用来确保数据库安全的一系列
语句。例如,给不同的用户设置不同的权限,访问并使用不同的数据内容。数据
控制语言就是用于控制数据库组件的存取许可、存取权限等以解决涉及到权限管
理的问题,其主要包括 +)、)!,!、&!- 等语句。+)- 语句可以将指定的
安全对象的权限授予相应的主体,)!,! 语句则删除授予的权限,&!- 语句拒绝
授予主体权限,并且防止主体通过组或角色成员继承权限。
另外,除了上面 语言的三种基本类型外,还有三种常用的类型:事务管
理语言、流程控制语言和附加的语言元素。
在数据库中执行操纵时,经常需要多个操作同时完成或者同时取消。例如,
两个帐号之间的转帐操作,必须保证款项从一个帐号转出的同时,进入到另一个
帐号中。如果在操作过程中一方取消转移,那么两边应该同时撤销操作。事务便
是可以实现操作同时完成或同时取消的操作。在事务中的操作要么全部完成,要
么全部失败。而用于事务管理的语句就是事务管理语言。在事务管理语言中 ,
语句用于提交事务;)., 语句用于回滚操作,即撤销执行操作。
流程控制语言是用于设计应用程序的语句,如 /、01!、! 语句等。
附加语言元素不是 的标准内容,而是 语言为了
编程方便而增加的语言元素。这些语言元素包括变量、运算符、函数、流程控制
语句和注释等内容。
4.2 编程基础
语言是一系列操作数据库及数据库对象的命令语句,因此了解基
本语法和流程语句的构成是必须的,这主要包括常量和变量、运算符、表达式、
注释等。
4.2.1 常量与变量
在任何语言中,最不可少的便是常量和变量,它们是语言编程的基础元素。常量 ,
也称为文字值或标量值,是指程序运行中值不变的量,用于表示特定数据值的符
号,根据代表的数据类型不同,值也就不同,可以是日期型、数值型、字符串型
等。
在表 4-1 列出了 SQL Server 2008 中可用的常量类型及常量的表示说明。
表 4-1 常量类型及说明
常量类型 常量表示说明
字符串常量 包括在单引号或双引号中,由字母数(2、3)、数字字符($4)以及特
殊字符(如感叹号567、 符587和数字号57)组成
二进制常量 只有 $ 或者 9 构成的串,并且不使用引号。如果使用一个大于 9 的数字,他将
被转换为 9
十进制整型常量 使用不带小数点的十进制数据表示
十六进制整型常量 使用前缀 $: 后跟十六进制数字串表示
日期常量 使用单引号将日期时间字符串括起来组成
实型常量 有定点表示和浮点表示两种方式
货币常量 以前缀为可选的小数点和可选的货币符号的数字字符串来表示
变量,就是在脚本中没有固定值的元素对象。在 #$$% 系
统中,存在两种类型的变量。第一种是系统定义和维护的全局变量;第二种是用
户定义用来保存中间结果的局部变量。
1.系统全局变量
系统全局变量是 SQL Server 系统提供并赋值的变量。用户不能建立全局变量 ,
也不能用 SET 语句来修改全局变量的值。通常将全局变量的值赋给局部变量,以
便保存和处理。全局变量以两个@符号开头。
例如,可以使用全局变量@@VERSION 查看当前使用的 SQL Server 的版本信
息,语句如下所示:
SELECT @@VERSION AS [当前 SQL Server 版本]
在查询窗口中执行上述语句,如图 4-1 所示。
图 4-1 使用全局变量
2.局部变量
局部变量是作用域局限在一定范围内的 Transact-SQL 对象。在 SQL Server 中,
局部变量是用户自定义的,可以保存单个特定类型数据值对象。
通常情况下,局部变量在一个批处理(也可以是存储过程或触发器)中被声
明或定义,然后该批处理内的 SQL 语句就可以设置这个变量的值,或者是引用这
个变量已经被赋予的值。当这个批处理结束后,这个局部变量的生命周期也就随
之消失。
要创建局部变量,使用 DECLARE 语句,其语法如下:
DECLARE
{@local_variable data_type|
@cursor_variable CURSOR
}[,…n]
主要参数说明如下:
@local_variable 是变量的名称,他必须以@开发。
data_type 是任何由系统提供的或用户定义的数据类型。变量不能是 text、ntext 或
image 数据类型。
table_type_definition 用于定义表数据类型。表声明包括列定义、名称、数据类型和约
束。允许的约束类型只包括 PRIMARY KEY、UNIQUE KEY、NULL 和 CHECK。
n 表示可以指定多个变量并对变量赋值的占位符。当声明表变量时,表变量必须是
DECLARE 语句中正在声明的变量。
声明局部变量后要给局部变量赋值,可以使用 SET 或 SELECT 语句:
SET @local_variable = expression
SELECT @ local_variable = expression[,…n]
其中,@local_variable 是除 cursor、text、ntext、image 外的任何类型变量名;
expression 是任何有效的 SQL Server 表达式。
SELECT @lacol_variable 通常用于将单个值返回到变量中,如果 expression 为
剩余41页未读,继续阅读
资源评论
w275768518
- 粉丝: 5
- 资源: 87
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功