数据库原理实验教案软件 下载本文

湖南工学院教案用纸 P3

实验六 游标和存储过程

实验目的:

使学生加深对游标和存储过程的理解.掌握游标的定义、使用方法及使用游标修改和删除数据的方法;掌握存储过程的使用、执行存储过程和查看、修改、删除存储过程的方法。

教学课时:2 学时

教学设备:安装SQL Server的微机 实验内容:

1 利用游标逐行显示所查询的数据块的内容。

2 利用游标显示指定行的数据的内容。 3 利用游标修改和删除指定的数据元组。 4 创建、修改、调用和删除存储过程。

实验步骤:

1. 基本操作实验 1)游标

(1)使用游标逐行显示数据。 (2)使用游标显示指定行的数据。 (3)利用游标修改数据。 (4)利用游标删除数据。 2)存储过程

(1)存储过程的创建。 (2)存储过程的修改。 (3)存储过程的调用。 (4)存储过程的删除 实验思考:

1. 为什么在数据处理中引入游标?

2. 如何提取出游标中的数据?用何种语句?

湖南工学院教案用纸 P4

3.存储过程有哪些主要优点? 实验报告:

1 用Transact-SQL 写出实验操作的语句。 2 实验步骤和实验结果。 3 实验中的问题和提高。

4 SQL Server中有的安全性和数据完整性功能。 实验注意:

实验后记:

湖南工学院教案用纸 P1

实验七 数据完整性、安全性及备份

实验目的:

使学生加深对数据安全性和完整性的理解.并掌握 SQL Server中有关用户、角色及操作权限的管理方法.学会创建和使用规则、缺省和触发器。了解数据库备份和恢复机制,掌握备份和还原的方法。 教学课时:2 学时

教学设备:安装SQL Server的微机 实验内容:

1 数据库的安全性实验、在 SQL Server企业管理器中,设置 SQL Server的安全认证模式.实现对SQL Server的用户和角色管理,设置和管理数据操作权限.

2数据库的完整性实验。使用Transact-SQL设计规则、缺省、约束和触发器.通过SQLServer企业管理器定义它们。 实验步骤:

1. 基本操作实验

1)创建、删除约束

(1)在执行创建产品信息表的操作时,指定产品编号为主键值,并且创建一个聚簇索引。

create table products(

id char(10) not null, name char(20) not null, price money default 0.01, quantity smallint null,

constraint pk_id primary key clustered (id))

(2)创建一个学生信息表,其中输入性别字段值时,只能接受“F”或者“M”,并且为phonenum字段创建检查约束,限制只能输入类似01080798654之类的数据,而不能随意输入其他数据。

create table student(

Id char(8), name char(8), sex char(2),

湖南工学院教案用纸 P2

phonenum int,

constraint chk_sex check(sex in (’F’,’M’)), Constraint chk_phonenum check ()

(3)删除学生信息表中的约束chk_phonenum。

2)建立一个商店的数据库store,记录顾客及其购物情况,由下面三个表组成: 商品(商品号,商品名,单价,商品类别,供应商); 顾客(顾客号,姓名,住址); 购买(顾客号,商品号,购买数量); 试用SQL语言完成下列功能: 建表,在定义中要求声明: (1)每个表的主外码;

(2)顾客的姓名和商品名不能为空值; (3)单价必须大于0;

(4)购买数量必须在0到20之间;

3)在SQL Server企业管理器中为自己建立一个服务器用户、数据库用户和数据库角色。并将自己创建的学生选课库、图书借阅库的所有操作权赋予它们,将自设计的数据库的操作权赋予新建的数据库用户。

4)用企业管理器创建存储过程和触发器的步骤如下:

(1)定义学生表中所在系属性为“计算机系”的缺省,并捆绑缺省到学生表中。 (2)利用触发器来保证学生选课库中选课表的参照完整性,以维护其外码与参照表中的主码一致。 2. 提高操作实验

(1)为图书读者库中的借阅表建立一个保证参照完整性,以维护外码与被参照表中的主码一致的触发器。

(2)建立一个学生与选课表间来维护参照完整性而使用的联级删除触发器、联级修改触发器和受限插入触发器。

(3)针对自设计的数据库应用项目的完整性要求,用Transact-SQL语句进行定义并通过Enterprise Manager实现。

5)备份和恢复数据库。

phonenum like ‘(010)[0-9][0-9][0-9][0-9]

[0-9][0-9][0-9][0-9]’)