- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章SQLServer关系数据库管理系统
第六章 SQL Server关系数据库管理系统
一、T-SQL语言
Transact-SQL(T-SQL)是微软公司在SQL Server数据库管理系统中ANSI SQL-99的实现。T-SQL具有数据定义、数据操纵和数据控制功能。下面主要讲T-SQL的语言元素和创建存储过程和触发器等知识
1、T-SQL的语言元素
(1) 变量
①全局变量
全局变量由系统提供且预先声明,通过在名称前加两个“@”符号区别于局部变量。
② 局部变量
局部变量由用户自己定义的,用于保存单个数据值。例如,保存运算的中间结果,作为循环变量等。
1)局部变量的定义
用 DECLARE 语句声明局部变量,所有局部变量在声明后均初始化为NULL。
语法格式: DECLARE { @local_variable data_type }??[ ,...n]
2)用SET语句赋值
将DECLARE语句创建的局部变量设置为给定表达式的值。
语法格式:SET @local_variable=expression
3)用SELECT语句赋值
语法格式:
SELECT {@local_variable=expression} [,…n] [FROM….]
例1 创建局部变量@var1、@var2,并赋值。
DECLARE @var1,@var2 char(20)
SET @var1=’中国’ /*一个SET语句只能给一个变量赋值*/
SET @var2=@var1+’是一个伟大的国家’
Go
例2 使用查询给变量赋值。
DECLARE @student nvarchar(10)
SELECT @student=姓名 FROM 学生
GO
(2)控制语句
1)BEGIN---END
2)IF...ELSE
3)GOTO
4)WHILE
5)CONTINUE
6)BREAK
7)RETURN
8)CASE
(3)输出语句
PRINT
例3 如果“数据库原理课程”的平均成绩高于75分,则显示“平均成绩高于75分”,否则显示“平均成绩低于75分” 。
IF ( SELECT AVG(成绩)
FROM 选课,课程
WHERE 选课.课程号=课程. 课程号 AND
课程. 课程名=’数据库原理’) 75
PRINT 平均成绩低于75.
ELSE
PRINT 平均成绩高于75.
2、创建存储过程
(1)定义
存储过程是在SQL服务器上存储的已经编译过的SQL语句组。存储过程分为三类:系统提供的存储过程、用户定义的存储过程和扩展存储过程。
系统提供的存储过程:在安装SQL Server时,系统创建了很多系统存储过程。
自定义的存储过程:是由用户为完成某一特定功能而编写的存储过程。
扩展存储过程:是对动态链接库(DLL)函数的调用。
(2)作用
存储过程具有减少网络流量、增强代码的重用性和共享性、加快系统运行速度和加强安全性。
(3)创建存储过程
创建存储过程的语法为:
CREATE PROCEDURE 过程名
[@ 参数名 数据类型 [ = 默认值 ] [ OUTPUT ] [,...n ] [WITH RECOMPILE|ENCRYPTION]
AS SQL语句组
(4)执行存储过程
执行存储过程的语法:
[ EXEC] 过程名 [@ 参数名 = ] 参数 [,@ 参数名 = ] 参数
例 4 创建一个存储过程,用于根据姓名和所在系对学生表查询。
(5)删除存储过程
删除存储过程语法格式
DROP PROCEDURE 过程名
3、触发器
(1)定义
触发器(Trigger)是用户对某一表中的数据做插入、更新和删除操作时被触发执行的一段程序,通常我们使用触发器来检查用户对表的操作是否合乎整个应用系统的需求是否合乎商业规则以维持表内数据的完整性和正确性。
一个触发器只适用于一个表,每个表做多只能有3个触发器,分别是INSERT触发器、UPDATE触发器和DELETE触发器。
(2)创建触发器语法
CREATE TRIGGER 触发器名
ON 表名
[WITH ENCRYPTION]
FOR [ INSERT ] [ , ] [ UPDATE ] [ , ] [DELETE]
AS SQL语句组
创建触发器的语句中用到以下两个逻辑表:
INSERTED表:存放由于INSERT或UPDATE语句的执行而导致要加到该触发器作用的表中去的所有新行。即把插入或更新表的新行值,在插入或更新表的同时,也将其副本存入INSERTED表中。
DELETED表:存放由于DELETE或UPDATE语句的执行而导致要从被该触发器作用的表中删除的所有行。
例5 P191例6-20.
(3)删除触发器语法
DROP TRIGGER 触发器名
二、SQL Server 2
文档评论(0)