实验4 数据库完整性控制_第1页
实验4 数据库完整性控制_第2页
实验4 数据库完整性控制_第3页
实验4 数据库完整性控制_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

4 注意 为了节约大家的宝贵时间 因此给出题目时 会在一定程度注意 为了节约大家的宝贵时间 因此给出题目时 会在一定程度 上给出相关的语句 大家只需要补充完善相关的上给出相关的语句 大家只需要补充完善相关的 SQL 语句即可 语句即可 实验四实验四 数据库完整性控制数据库完整性控制 一 实验目的一 实验目的 1 掌握使用 T SQL 定义实体完整性的方法 2 了解 SQL Server 违反实体完整性处理措施 3 理解参照完整性的含义 4 熟练掌握建立外键的方法 5 掌握利用 FOREIGN KEY REFERENCES 子句以及各种约束保证参照完整性 6 掌握利用短语 NOT NULL UNIQUE CHECK 保证域完整性 7 熟练掌握约束 规则实施用户自定义完整性 8 掌握创建触发器的方法 掌握利用触发器规范插入 更新 删除操作的方法 二 实验内容二 实验内容 1 新建数据库 School 并创建学生表 Student 包含以下属性 Sno CHAR 5 Sname CHAR 8 Ssex CHAR 1 Sage INT Sdept CHAR 20 并插入数据 10000 王敏 F 23 CS 10000 王浩 M 25 EE 创建数据库 表以及插入数据的相关语句为 CREATE DATABASE School USE School CREATE TABLE Student Sno CHAR 5 Sname CHAR 8 Ssex CHAR 1 Sage INT Sdept CHAR 20 INSERT INTO Student values 10000 王敏 F 23 CS INSERT INTO Student values 10000 王浩 M 25 EE 执行完上述语句后查看数据库中 student 表中的数据 然后再添加约束 令 Sno 为主键 查看结果并分析原因 验证当与现有的数据环境不 等时 无法建立实体完整性 4 最后 请大家删除该 student 表 直接在定义表时给出实体完整性约束 要求给出把主 键定义在表级和列级两种方法 定义好表结构后 再执行如下两条插入语句 INSERT INTO Student values 10000 王敏 F 23 CS INSERT INTO Student values 10000 王浩 M 25 EE 列级 USE School CREATE TABLE Student Sno CHAR 5 primary key Sname CHAR 8 Ssex CHAR 1 Sage INT Sdept CHAR 20 表级 USE School CREATE TABLE Student Sno CHAR 5 Sname CHAR 8 Ssex CHAR 1 Sage INT Sdept CHAR 20 primary key Sno 4 分析违反实体完整性时 系统给出了何种处理 并将王浩的学号改为 10001 重新插入 请参照实验教材 P52 55 实验 3 1 2 验证多重级联删除 在数据库 School 中新建 StudentCard 表 包含以下属性 CardID char 14 Sno char 5 RemainedMoney decimal 10 2 令 CardID 为其主键 令 Sno 为参照 Student 表的外键 级联删除 并插入数据 新建 ICBCCard 表 包含以下属 性 BankID char 20 CardID char 14 RestoredMoney decimal 10 2 令 BankID 为 主键 令 CardID 为参照 StudentCard 表的外键 级联删除 并插入数据 本题大家可以在如下语句上进行完善 CREATE TABLE StudentCard CardID char 14 Sno char 5 RemainedMoney decimal 10 2 INSERT INTO StudentCard VALUES 05212567 10001 120 00 INSERT INTO StudentCard VALUES 05212302 10000 130 50 CREATE TABLE ICBCCard BankID char 20 CardID char 14 RestoredMoney decimal 10 2 INSERT INTO ICBCCard VALUES 9558844022312 05212302 125000 3 INSERT INTO ICBCCard VALUES 9558844023645 05212567 150000 4 注意 请大家在建立外键时 StudentCard 表的外键建立的列级 ICBCCard 表建立在 表级 再执行以下语句 INSERT INTO StudentCard VALUES 05212568 10002 120 00 观察会发生什么 为什么 3 通过删除 Student 表中的一条记录 Delete From Student where Sno 10000 然后再查询 StudentCard ICBCCard 表中的数据 观察发生了什么 第 2 和 3 题请参照实验教材 P55 61 实验 3 2 4 在数据库 School 中新建 Director 表 包含以下属性 Dno CHAR 5 Dname CHAR 8 Dsex CHAR 1 Dage INT Ddept CHAR 20 并自定义 3 个约束 U1 U2 和 U3 其中 U1 规定 Dno 字段不允许取空 U2 规定 Dage 属性的值必须 55 U3 4 规定 Ddept 属性的值唯一 创建表的语句为 CREATE TABLE Director Dno CHAR 5 Dname CHAR 8 Dsex CHAR 1 Dage INT Ddept CHAR 20 本题在上述语句上添加必要的约束然后运行即可 注意 CONSTRAINT U3 约束名 是为了给出约束的名称 从而方便对该约束进行 管理 否则是可以省略的 5 Director 表创建成功后 向其中插入三条数据 请逐一执行如下三条语句 INSERT INTO Director values 90000 赵磊 M 45 艺术系 INSERT INTO Director values 90001 韩丹 F 60 中文系 INSERT INTO Director values 90001 韩丹 F 50 艺术系 观察 三条语句执行时 可以正常插入吗 如果不能正常插入 为什么 6 去除 U1 约束 7 创建规则 rule sex 规定插入或更新的值只能是 M 或 F 并绑定到 Director 的 Dsex 字段 完成后在对象资源管理器中查看 School 数据库规则设置 8 演示违反规则 rule sex 的插入操作 执行语句 INSERT INTO Director values 90002 蒋坤 1 34 管理系 执行结果是什么 为什么 注意 第 4 8 题请参照实验教材 P61 64 实验 3 3 9 完成实验 3 4 触发器设计 建立该触发器之前 先创建 teacher 表 创建 teacher 表的语句为 CREATE TABLE Teacher Eno numeric 4 primary key Ename char 10 Job char 8 Sal numeric 7 2 Deduct numeric 7 2 Deptno numeric 2 10 建立一个在 teacher 表上的触发器 T1 当插入或更新表中数据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论