数据库系统概论——存储过程和触发器.

上传人:最**** 文档编号:117997369 上传时间:2019-12-11 格式:PPT 页数:63 大小:592.50KB
返回 下载 相关 举报
数据库系统概论——存储过程和触发器._第1页
第1页 / 共63页
数据库系统概论——存储过程和触发器._第2页
第2页 / 共63页
数据库系统概论——存储过程和触发器._第3页
第3页 / 共63页
数据库系统概论——存储过程和触发器._第4页
第4页 / 共63页
数据库系统概论——存储过程和触发器._第5页
第5页 / 共63页
点击查看更多>>
资源描述

《数据库系统概论——存储过程和触发器.》由会员分享,可在线阅读,更多相关《数据库系统概论——存储过程和触发器.(63页珍藏版)》请在金锄头文库上搜索。

1、SQL Server 存储过程和触发器 主要内容 lTransact-SQL编程基础 l事务管理 l游标 l存储过程 l触发器 1 Transact-SQL编程基础 l标识符、运算符、变量 l函数 l流程控制语句 lGOTO语句 lRETURN语句 l打印输出语句 l注释语句 标识符 l标识符是由用户定义的有意义的可识别的 字符序列,通常用来标识服务器、数据库 、数据库对象、常量、变量等 l命名标识符时必须遵循以下规则 l第一个字符必须是下列字符之一: l字母、下划线(_)、或者# l后续字符可以是: l字母、数字、_、#、$、等符号 l不能使用SQL中的关键字和运算符,不允 许嵌入空格或其它

2、特殊字符 运算符 l算术运算符 l+ ,- ,*, / ,% l赋值运算符 l= l比较运算符 l= , ,= ,、=、=90 THEN A WHEN AVG(Grade)=80 THEN B WHEN AVG(Grade)=70 THEN C WHEN AVG(Grade)=60 THEN D WHEN AVG(Grade)60 THEN E END AS 等级 FROM T_Grade GROUP BY StudentCodeSELECT 流程控制语句 2BEGINEND语句 l定义语句块: l多条T-SQL语句使用BEGINEND组合起来形成一个 语句块。 l可以嵌套使用 l语法形式为

3、BEGIN SQL语句1 SQL语句2 END 流程控制语句 3WHILECONTINUEBREAK语句 l条件循环语句 lContinue可以使程序跳过其后面的语句,回到while循 环的第一行命令; lBreak使程序完全跳出循环,结束while语句。 l语法形式为 WHILE BREAK或CONTINUE 结束 整个 循环 结束 本次 循环 while break while continue 【例8】计算10!。 DECLARE p int, i smallint, text varchar(100) SET p=1 SET i=1 WHILE i=10 BEGIN SET p= p*

4、i SET i=i+1 END SET text=12310=+CAST(p AS char(10) SELECT text AS 计算结果 GOTO语句 GOTO语句的语法形式为 l跳转语 句,跳转到标有标识 符指定位置 GOTO label label: 【例9】利用GOTO语句求出从1加到5的总和 RETURN语句 l终止语句,用于无条件终止一个查询 、存 储过 程或者批处理。 lRETURN语句的语法形式为 RETURN 整数 打印输出语句 可以显示变量的值 PRINT语句的语法如下 PRINT | | 例10 利用PRINT语句判断变量值的示例 注释语句 (1)整块注释 /* 注释块

5、 */ (2)从行的后部分注释 语句 注释 事务管理 Begin Transaction 事务开始 SQL语句组 Commit Transaction 提交事务 说明: l用户定义的事务也称为显式事务 l事务只用于数据修改语句 l可以在commit transaction之前使用roolback transaction取消事务并撤销对数据所作的任何改变,命令 为: roolback transaction savepoint_name lSavepoint_name为保存点,是用户放在事务中的一个 标记,指明回滚点 l事务管理通过确保要么完成整个事务,要么回滚事务 ,来确保数据库的一致性和可恢

6、复性 例11 建立一个事务,用来将mag_dept表中depid为1 的记录的depmanager字段的值更改为“王涓涓” 例12 建立一个事务,用来更改mag_dept表中 depid为1以及depid为2的记录的depmanager字段 的值,并回滚事务到保存点 存储过程 l存储过程:可以将一些固定的操作集中起来由SQL Server数据库服务器完成,以实现某个任务;存储过程 允许声明变量、输出参数、返回单个或者多个结果集以 及返回值; l存储过程存在于数据库内,可由应用程序调用执行。 l存储过程分为两类: l系统存储过程(存储在master数据库中) l用户自定义的存储过程。 l使用存储

7、过程有以下优点: 1)可以在一个存储过程中执行多条SQL语句; 2)可多次调用; 3)创建时就在服务器端进行了编译,节省SQL语句的运行时 间; 4)提供了安全机制,它限制了用户访问SQL语句的权利,只 为特定用户开放存储过程。 创建存储过程 常用存储过程的语法格式: CREATE PROCDURE 存储过程名 形式参数 数据类型VARYING=默认值OUTPUT AS SQL语句1 SQL语句n 说明: l“形式参数”名称必须符合标识符规则; lOUTPUT表示该参数是可以返回的,可将信息返回调用者; l如果有多个参数,可以依次按以上参数定义规则列出,用逗 号“,”隔开。 例13 建立一个名

8、为“全部雇员”的存储过程,用来 查询mag_emp表的所有记录 例14 建立一个名为“雇员查询”的存储过程, 查询某种职务雇员的所有情况 【例15】在School中创建一个的存储过程 proc_SearchStudent,查询指定学生的选课情况。 CREATE PROC proc_SearchStudent stcode char(8) AS SELECT T_Student.StudentName,T_Course.CourseName FROM T_Student JOIN T_Grade JOIN T_Course ON T_Grade.CourseCode=T_Course.Cours

9、eCode ON T_Student.StudentCode=T_Grade.StudentCode WHERE T_Student.StudentCode=scode 修改存储过程 修改存储过程的语法为 ALTER PROCEDURE ; =OUTPUT AS 例16 修改存储过程“雇员查询”,用来 统计某一职务雇员的总人数 运行存储过程 运行存储过程的语法为 EXECUTE 存储过程名形参=实参值|变量 OUTPUT|DEFAULT 说明: 1)“形参”是创建存储过程时定义的形参名; 2)“实参值”是输入参数的值; 3)“变量”表示用来保存参数或者返回参数的变量; OUTPUT表示指定参数

10、为返回参数; 4)DEFAULT表示使用该参数的默认值作为实参。 5)如有多个参数,可依次按以上参数定义规则列出,用逗号“ ,”隔开。 调用存储过程proc_Course的语句为: EXEC proc_Course 调用存储过程proc_SearchStudent,查询05101101学生的选课情况 。 EXEC proc_SearchStudent 05101101 或 EXEC proc_ SearchStudent scode=05101101 采用“参数=值”的形式 ,各个参数的顺序可以 任意排列。 实参顺序和定义时 的参数顺序一致。 【例17】在School中创创建一个的存储过储过 程 proc_SearchStudentAvgGrade,查询查询 某个学生的选课选课 数目 和平均成绩绩。 CREATE PROC proc_SearchStudentAvgGrade stcode char(8), stcount int OUTPUT,stavg in

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号