数据库原理数据完整性控制

上传人:宝路 文档编号:21740940 上传时间:2017-11-24 格式:DOC 页数:3 大小:62.35KB
返回 下载 相关 举报
数据库原理数据完整性控制_第1页
第1页 / 共3页
数据库原理数据完整性控制_第2页
第2页 / 共3页
数据库原理数据完整性控制_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《数据库原理数据完整性控制》由会员分享,可在线阅读,更多相关《数据库原理数据完整性控制(3页珍藏版)》请在金锄头文库上搜索。

1、课 程 名 称 数 据 库 原 理实 验 名 称 数 据 完 整 性 控 制实 验成 绩学 号 B12053114 姓 名 晁 美 霞 班 级 B120531 日 期 2013/5/2实 验 目 的 :1. 掌 握 使 用 T-SQL 对 数 据 进 行 完 整 性 控 制 ;2. 掌 握 触 发 器 的 用 法 ;实 验 平 台 :利 用 SQL Server 2005 及 其 交 互 查 询 工 具 来 实 现 操 作 ;实 验 内 容 与 步 骤 :一 、 数 据 完 整 性 控 制( 1) 定 义 表 Student1, 并 将 其 中 的 SNO 属 性 定 义 为 主 码 ; 属

2、性 Ssex 的 值 只 能取 男 或 女 ;CREATE TABLE Student1(SNO INT PRIMARY KEY NOT NULL, SNAME CHAR(8), SEX CHAR(2) CHECK (SEX IN (男, 女 ), AGE INT, DEPTNO INT, )( 2) 定 义 表 Course1, 并 将 其 中 的 CNO 属 性 定 义 为 主 码 ;CREATE TABLE Course1(CNO INT PRIMARY KEY NOT NULL, CNAME CHAR(20), TNO INT, CREDIT INT, )( 3) 定 义 表 SC1,

3、 将 其 中 的 属 性 SNO+CNO 定 义 为 主 码 ; GRADE 属 性 设 置 不 能 取 空值 ;CREATE TABLE SC1(SNO INT NOT NULL,CNO INT NOT NULL,GRADE INT NOT NULL, PRIMARY KEY(SNO,CNO) ( 4) 定 义 表 SC1 中 的 外 码 ;ALTER TABLE SC1 ADD FOREIGN KEY (SNO) REFERENCES Student1(SNO)ALTER TABLE SC1ADD FOREIGN KEY (CNO) REFERENCES Course1(CNO)( 5)

4、建 立 系 部 信 息 表 , 要 求 系 部 表 名 称 DNMAE 取 值 唯 一 ;CREATE TABLE Dept1(DEPTNO INT PRIMARY KEY NOT NULL,DNAME CHAR(20) UNIQUE )( 6) 用 CONSTRAINT 对 完 整 性 约 束 条 件 命 名 , 定 义 表 Student1, 要 求 学 号 在9000099999 之 间 , 姓 名 不 能 取 空 值 , 年 龄 小 于 30, 性 别 只 能 是 男 或 女 ;CREATE TABLE Student1(SNO INT PRIMARY KEY CONSTRAINT C

5、1 CHECK(SNO BETWEEN 90000 AND 99999), SNAME CHAR(8) CONSTRAINT C2 NOT NULL, SEX CHAR(2) CONSTRAINT C3 CHECK(SEX IN (男 ,女), AGE INT CONSTRAINT C4 CHECK(AGE30), DEPTNO INT, )( 7) 修 改 表 Student1 的 完 整 性 限 制 , 删 除 对 性 别 所 做 的 限 制 , 并 将 年 龄 限 制 由小 于 30 该 为 小 于 40;ALTER TABLE Student1 DROP CONSTRAINT C3AL

6、TER TABLE Student1 DROP CONSTRAINT C4ALTER TABLE Student1 ADD CONSTRAINT C4 CHECK(AGE40)二 、 触 发 器 的 使 用创 建 一 个 触 发 器 , 在 修 改 SC 表 的 成 绩 时 , 判 断 日 期 是 不 是 期 末 ( 1 月 或 7 月 ), 如 果 不 是 , 则 不 允 许 修 改 , 并 给 出 测 试 该 触 发 器 的 语 句 ;CREATE TRIGGER UPDATE_SCON SCINSTEAD OF UPDATEAS BEGINDECLARE ISMONTH INT;DECL

7、ARE SNO INT;DECLARE CNO INT;DECLARE NEWGRADE INT;SET ISMONTH=MONTH(GETDATE();IF UPDATE(GRADE)IF(ISMONTH=1 OR ISMONTH=7)BEGINSET SNO=(SELECT SNO FROM INSERTED)SET CNO=(SELECT CNO FROM INSERTED)SET NEWGRADE=(SELECT GRADE FROM INSERTED)UPDATE SC SET GRADE=NEWGRADE WHERE SNO=SNO AND CNO=CNO;ENDELSEPRINT

8、 现在不是期末时间,不可以修改学生成绩! ;ENDGOUPDATE SC SET GRADE=88 WHERE SNO=1001 AND CNO=1实 验 总 结 ( 结 论 或 问 题 分 析 ) :通 过 这 次 实 验 , 我 学 到 了 很 多 , 让 我 对 数 据 完 整 性 有 了 更 深 的 理 解 , 并 会 熟练 运 用 SQL 对 数 据 进 行 完 整 性 控 制 , 而 且 也 掌 握 触 发 器 的 用 法 。 但 在 实 验 的 过 程中 , 也 遇 到 了 一 些 问 题 , 在 创 建 触 发 器 时 , 出 现 过 一 些 错 误 , 不 过 , 在 老 师 和 同学 的 帮 助 下 , 都 得 到 了 顺 了 解 决 , 以 后 我 更 加 努 力 。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

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