1 / 21

数据库原理与 SQL Server

数据库原理与 SQL Server. 第 16 课 存储过程、触发器. 第 15 课 存储过程、触发器. 目标: 掌握存储过程的相关知识 了解游标的相关知识 掌握触发器的相关知识. 6.3 存储过程. 存放数据. 表 ( Table):. 数据库对象. 表间关系. 关系图 ( Diagram):. 虚拟表,只有结构没有数据. 视图 ( View):. 数据排序,提高查询速度. 索引 ( Index):. 存储过程 ( Stored Procedure ) :. 程序,减轻网络流量. 以表动作为前提的程序. 触发器 ( Trigger ) :.

eudora
Download Presentation

数据库原理与 SQL Server

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 数据库原理与SQL Server 第16课 存储过程、触发器

  2. 第15课 存储过程、触发器 目标: • 掌握存储过程的相关知识 • 了解游标的相关知识 • 掌握触发器的相关知识

  3. 6.3 存储过程 存放数据 表(Table): 数据库对象 表间关系 关系图(Diagram): 虚拟表,只有结构没有数据 视图(View): 数据排序,提高查询速度 索引(Index): 存储过程(Stored Procedure): 程序,减轻网络流量 以表动作为前提的程序 触发器(Trigger): 引例:按姓名查询手机号码

  4. 一、存储过程概述 概念:储存在服务器上的T-SQL程序,保存在数据库中 目的:减轻网络流量,提高执行效率 注意 存储过程与T-SQL程序的区别

  5. 二、创建存储过程 1. 使用SQL语句 2. 使用SQL-EM

  6. 使用SQL语句 语句格式: CREATE PROCEDURE <存储过程名> [@<局部变量名><数据类型>[,…n]] AS <T-SQL语句> 实例创建表n(class,num,man,woman),统计表s各班人数。 编写存储过程total_1,由表s统计数据插入表n。 实例编写存储过程p_1,由学生姓名查询学生基本信息。

  7. 使用SQL-EM SQL-EM→存储过程→右键→新建存储过程 实例 编写存储过程total_2,由表s统计数据插入表n。 实例 编写存储过程p_2,由学号、课程编号查询成绩。

  8. 三、执行存储过程 语句格式: EXEC[UTE] <存储过程名>[<参数值>[,…]] 实例 由表s统计数据插入表n 实例 查询李国的基本信息 实例 查询学号1001课程编号c001的成绩

  9. 四、查看和修改存储过程 SQL-EM→存储过程→右键→属性

  10. 五、删除存储过程 1. 使用SQL语句 语句格式: DROP PRODRUCE <存储过程名>[,…n] 2. 使用SQL-EM SQL-EM→存储过程→右键→删除

  11. 六、存储过程和游标 游标的概念:对查询到的记录需要做逐一处理,而 不是对整个记录集进行同一操作。 T-SQL游标: 用于服务器,最常用 游标的种类 API游标: 用于客户端与服务器的连接程序 客户游标: 用于客户端应用程序

  12. 使用游标 声明游标: DECLARE <游标名> CURSOR FOR <SELECT语句> 打开游标: OPEN <游标名> 读取游标: FETCH NEXT FROM <游标名> [INTO @<变量名>[,...n]] @@FETCH_STATUS=0 FETCH执行成功 关闭游标: CLOSE <游标名> 释放游标: DEALLOCATE <游标名> 实例查询学生学号、姓名、平均成绩,按平均分排名次,并显示名次。 实例编写存储过程p_3,用于按学生输出各门课程的成绩单。

  13. 6.4 触发器 存放数据 表(Table): 数据库对象 表间关系 关系图(Diagram): 虚拟表,只有结构没有数据 视图(View): 数据排序,提高查询速度 索引(Index): 存储过程(Stored Procedure): 程序,减轻网络流量 以表动作为前提的程序 触发器(Trigger):

  14. 一、触发器概述 当修改(插入、删除、修改)表s后,如何保证表n数据与表s数据的一致性。 引 入: 触发器是建立在表上的特殊的存储过程,当对该表进行插入、删除、修改操作后,将自动执行相应的insert、delete、update触发器。 概 念: 执行方式: ● insert(delete):对表插入(删除)记录时,将插入(删除)的记录放入inserted(deleted)表中,该表为一逻辑表(结构与原表相同),保存插入(删除)的记录,然后执行触发器指定的操作。 ●update:先delete,再insert。

  15. 二、创建触发器 1. 使用SQL-EM 2. 使用SQL语句

  16. 使用SQL-EM SQL-EM→表→右键→所有任务→管理触发器 实例在表s上创建DELETE 触发器,实现表s删除 数据时与表n间数据的一致性。 实例在表s上创建INSERT 触发器,实现表s插入 数据时与表n间数据的一致性。 函数ISNULL(n,0):n为null则n取0

  17. 使用SQL语句 语句格式: CREATE TRIGGER <触发器名> ON <表名> FOR INSERT| DELETE | UPDATE AS <T-SQL语句> 实例在表s上创建UPDATE触发器,实现表s修改数据时 与表n间数据的一致性。 注意:如果需要创建触发器,通常应同时创建INSERT、 DELETE和UPDATE才能保证数据的一致性

  18. 三、查看和修改触发器 SQL-EM→表→右键→所有任务→管理触发器

  19. 四、删除触发器 1. 使用SQL-EM SQL-EM→表→右键→所有任务→管理触发器 2. 使用SQL语句 语句格式:DROP TRIGGER <触发器名>[,…n]

  20. 作业 第六章 习题 7、8、9、10、11、12、13

  21. 实训 实验名称:创建存储过程、游标和触发器 目的要求:掌握SQL Server 2000中创建存储过程、游标和触发器的方法 操作步骤: ① 使用SQL-EM在数据库student中创建学生表的统计表,表名为“<班级>_<学号>_n”,包含列:class、char(20),num、smallint,man、smallint,woman、smallint。其中,class为主键。 ② 使用T-SQL语句编写一个存储过程,存储过程名为“<班级>_<学号>_total”,用于由学生表统计出数据插入统计表,并执行该存储过程。 ③ 使用T-SQL语句编写一个带参数的存储过程,存储过程名为“<班级>_<学号>_score”,用于按课程名称输出学生的成绩单,并执行该存储过程。 ④ 完成实例6-18。 ⑤使用SQL-EM在学生表上创建INSERT、DELETE和UPDATE触发器,用于维护学生表与统计表间数据的一致性。

More Related