77范文网 - 专业文章范例文档资料分享平台

实验1,数据定义(4)

来源:网络收集 时间:2019-03-27 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

实验9. 用户自定义完整性

9.1 实验目的

学习用户自定义约束,并实践用户自定义完整性,利用SQL查询分析器用短语NOT NULL、UNIQUE、CHECK保证用户定义完整性。 9.2 实验内容(建议将表改成Teachers,相应属性以T开始命名,如Tname)建立Teacher表。 建立表Teacher,注意跟前面所建立的Teacher区分开来,

(1) 创建Worker,Teacher表,并自定义2个约束U1以及U2,其中U1规定

Wname Tname字段唯一,U2规定Wage, Tage (级别)字段的上限是28。 (2) 在Worker, Teacher表中插入一条合法记录。

(3) 演示插入违反U2约束的例子,U2规定元组的Wage,Tage属性的值必须

<=28。

(4) 去除U2约束。

(5) 重新插入(3)中想要插入的数据,由于去除了U2约束,所以插入成功。 (6) 创建规则Rule_sex,规定插入或更新的值只能是M或F,并绑定到Worker

Teacher的Wsex Tsex字段。

(7) 演示违反规则Rule_sex的插入操作。 9.3 实验步骤

以系统管理员或sa帐号登录查询分析器,在查询分析器窗体下输入如下命令,运行并观察结果。

(1) 在查询分析器中输入如下SQL语句:

USE University_Mis

CREATE TABLE Teacher( Tno CHAR(5),

Tname CHAR(8) CONSTRAINT U1 UNIQUE, Tsex CHAR(1),

Tage INT CONSTRAINT U2 CHECK (Tage<=28), Tdept CHAR(20),

CONSTRAINT PK_Teacher PRIMARY KEY(Tno))

(2) 在查询分析器中输入如下SQL语句

USE University_Mis

INSERT INTO Teacher (Tno, Tname,Tsex, Tage,Tdept) VALUES(‘T01’,’李用’,’M’,14,’后勤部’) SELECT * FROM Teacher

(3) 在查询分析器中输入如下SQL语句

USE University_Mis

16

INSERT INTO Teacher (Tno, Tname,Tsex, Tage,Tdept) Values(‘T02’,’王勇’,’M’,38,’ 后勤部’) SELECT * FROM Teacher

(4) 在查询分析器中输入如下SQL语句

USE University_Mis

ALTER TABLE Worker DROP U2

(5) 在查询分析器中输入如下SQL语句

USE University_Mis

INSERT INTO Teacher (Tno, Tname,Tsex, Tage,Tdept) VALUES(‘T02’,’王勇’,’M’,38,’ 后勤部’) SELECT * FROM Teacher

(6) 在查询分析器输入如下SQL语句

USE University_Mis Go

CREATE RULE Rule_sex AS @Value IN (‘F’,’M’) Go

EXEC SP_bindrule Rule_sex, ‘Teacher.[Tsex]’;

(7) 在查询分析器中输入如下SQL语句

USE University_Mis

INSERT INTO Teacher VALUES(‘T03’,’黄号’,’1’,’25’,’ 后勤部’)

17

实验10、触发器

10.1 实验目的

通过实验使学生加深对数据完整性的理解,学会创建和使用触发器。 10.2 实验内容 (用实验9的Teacher表)

(1) 为Teacher表建立触发器T1,当插入或使更新表中的数据时,保证所操作的纪录的Tage值大于0。

(2) 为Teacher表建立触发器T2,禁止删除编号为00001的CEO。

(3) Teacher表中的人员的编号是唯一且不可更变的,创建触发器T3实现更新中编号的不可改变性。

(4) 演示违反T1触发器的约束的插入操作。 (5) 演示违反T1触发器的约束的更新操作。 (6) 演示违反T2触发器的约束的插入操作。 (7) 演示违反T2触发器的约束的更新操作。 10.3 实验步骤

(1) 仍然使用自定义完整性实验中的Teacher表。为此表建立触发器T1,当插入或使更新表中的数据时,保证所操作的纪录的Tage值大于0。 在查询分析器中输入如下SQL语句

USE University_Mis GO

CREATE TRIGGER T1 ON Teacher FOR INSERT,UPDATE AS

IF(SELECT Tage FROM INSERTED)<1 BEGIN

PRINT ‘职工年龄必须是大于0的整数! 操作失败!’ ROLLBACK TRANSACTION END

(2) 为Teacher表建立触发器T2,禁止删除编号为S01的CEO。

在查询分析器中输入如下SQL语句 USE University_Mis GO

CREATE TRIGGER T2 ON Teacher FOR DELETE AS

IF(SELECT Tno FROM DELETED)=’T01’ BEGIN

PRINT ‘此人是CEO! 删除操作失败!’ ROLLBACK TRANSACTION END

18

(3) Teacher表中的人员的编号是唯一且不可更变的,创建触发器T3实现更新中编号的不可改变性。

在查询分析器中输入如下SQL语句 USE University_Mis GO

CREATE TRIGGER T3 ON Teacher FOR UPDATE AS

IF UPDATE(Tno) BEGIN

PRINT ‘职工编号不能修改!’ ROLLBACK TRANSACTION END

(4) 在查询分析器中输入如下SQL语句

USE University_Mis

INSERT INTO Teacher VALUES(‘T03’,’ 李宏’,’F’,-10,’开发部’)

(5) 在查询分析器中输入如下SQL语句

USE University_Mis

UPDATE Teacher SET Tage=-7 WHERE Tno=’T01’

(6) 在查询分析器中输入如下SQL语句

USE University_Mis

DELETE FROM Teacher WHERE Tname=’李用’

(7) 在查询分析器中输入如下SQL语句

USE University_Mis

UPDATE Teacher SET Tno=’T07’ WHERE Tsex=’F’ 19

特别要求与说明

1、每做一个实验都要写实验报告,报告格式见参考模板。

2、以上10个实验中用粗体字书写的实验内容要求同学必须完成,并将相应命令和执行结果窗口剪贴到实验报告中。

3、 本课程实验1至实验9的要求都是统一的,但每个同学在实验时必将其修改成针对自己的、具有个性化的特殊实验要求。修改的关键是在数据库、基本表和属性的命名中必须加上自己的姓名信息。操作方法如下:

① 基本表命名与数据库名类似,都是姓的全拼加上名的第一个字母和下划线组成前缀,比如黄德才姓名为Huang de cai,则前缀是huangdecai_,因此数据库University_Mis和基本表Students分别命名为Huangdc_University_Mis和Huangdc_Students。

② 属性名的前缀以姓名的第一个字母和下划线组成,比如,黄德才姓名为huang de cai,则属性的前缀是hdc_,基本表huangdc_Students中属性名为Sname, Scredit, Sroom就分别命名为hdc_Sname, hdc_Scredit, hdc_Sroom。 4、要求把实验过程、SQL命令和执行结果窗口复制到实验报告中,请从精品课程网站下载毕业设计报告模板。

5、实验报告通过精品课程网站提交。

20

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库实验1,数据定义(4)在线全文阅读。

实验1,数据定义(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/546237.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: