数据控制-完整性控制报告.DOC

上传人:天*** 文档编号:909551 上传时间:2018-11-06 格式:DOC 页数:7 大小:213KB
下载 相关 举报
数据控制-完整性控制报告.DOC_第1页
第1页 / 共7页
数据控制-完整性控制报告.DOC_第2页
第2页 / 共7页
数据控制-完整性控制报告.DOC_第3页
第3页 / 共7页
数据控制-完整性控制报告.DOC_第4页
第4页 / 共7页
数据控制-完整性控制报告.DOC_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、数据控制-完整性控制 实 验 报 告班级 07 计算机 姓名 马兆亮 日期 2010-05-07 同组人 (无) 指导教师 金华 评分 数据控制-完整性控制部分实验一 、实验目的熟悉通过 SQL 对数据进行完整性控制二 、实验设备操作系统为 Microsoft Windows 2000数据库管理系统为 Microsoft SQL Server 2000 个人版或标准版微型计算机:奔腾,每人一台三、实验步骤建立 STUDENT、COURSE、SC 表,向各表插入若干记录。CREATE TABLE Student /*创建 student 表*/(sno char(10),sname char(2

2、0) NOT NULL,ssex char(5),sage SMALLINT,dno char(5);CREATE TABLE Course/*创建 course 表*/(cno char(10),cname char(20) NOT NULL,tno char(10),ccredit int,cpno char(5);CREATE TABLE Sc/*创建 Sc 表*/(sno char(10),cno char(10) ,cgrade char(5);/*向 Student 表中添加记录*/INSERT INTO Student VALUES(1001,库克,女,20,01);INSERT

3、 INTO Student VALUES(1002,张小芳,女,21,03);INSERT INTO Student VALUES(1003,李建,男,23,02);INSERT INTO Student VALUES(1004,王雨,男,21,03);INSERT INTO Student VALUES(1005,任娜,女,22,02);/*向 Course 表中添加记录*/INSERT INTO Course VALUES(001,数据库,1003,5,005);INSERT INTO Course VALUES(002,操作系统,1001,5,null);INSERT INTO Cour

4、se VALUES(003,网络编程,1002,4,001);INSERT INTO Course VALUES(004,微机原理,1003,6,002);INSERT INTO Course VALUES(005,C 语言,1001,4,null);/*向 Sc 表中添加记录*/INSERT INTO Sc VALUES(1001,001,74);INSERT INTO Sc VALUES(1001,002,68);INSERT INTO Sc VALUES(1001,003,79);INSERT INTO Sc VALUES(1001,004,83);INSERT INTO Sc VALU

5、ES(1001,005,92);INSERT INTO Sc VALUES(1002,001,73);INSERT INTO Sc VALUES(1002,002,88);INSERT INTO Sc VALUES(1002,003,73);INSERT INTO Sc VALUES(1002,004,87);INSERT INTO Sc VALUES(1002,005,85);INSERT INTO Sc VALUES(1003,001,80);INSERT INTO Sc VALUES(1003,002,71);INSERT INTO Sc VALUES(1003,003,80);INSE

6、RT INTO Sc VALUES(1003,004,null);INSERT INTO Sc VALUES(1003,005,69);INSERT INTO Sc VALUES(1004,001,86);INSERT INTO Sc VALUES(1004,002,96);INSERT INTO Sc VALUES(1004,003,79);INSERT INTO Sc VALUES(1004,004,83);INSERT INTO Sc VALUES(1004,005,null);INSERT INTO Sc VALUES(1005,001,84);INSERT INTO Sc VALUE

7、S(1005,002,69);INSERT INTO Sc VALUES(1005,003,94);INSERT INTO Sc VALUES(1005,004,85);INSERT INTO Sc VALUES(1005,005,77);1.建立 3 个表的主码建立 Student 的主码,两条语句分别执行:ALTER TABLE Student ALTER COLUMN sno char(10) NOT NULL;ALTER TABLE Student ADD CONSTRAINT PK_Student PRIMARY KEY(sno);建立 Course 的主码,两条语句分别执行:ALT

8、ER TABLE Course ALTER COLUMN cno char(10) NOT NULL;ALTER TABLE Course ADD CONSTRAINT PK_Course PRIMARY KEY(cno);建立 Sc 表的主码,三条语句分别执行:ALTER TABLE Sc ALTER COLUMN sno char(10) NOT NULL;ALTER TABLE Sc ALTER COLUMN cno char(10) NOT NULL;ALTER TABLE Sc ADD CONSTRAINT PK_Sc PRIMARY KEY(sno,cno);2.为 SC 表建立参

9、照完整性约束ALTER TABLE Sc ADD CONSTRAINT FK_sno FOREIGN KEY REFERENCES Student(sno);ALTER TABLE Sc ADD CONSTRAINT FK_cno FOREIGN KEY REFERENCES Course(cno);3.设 SC 表的成绩属性不允许取空值ALTER TABLE Sc ALTER COLUMN cgrade smallint NOT NULL;验证:当插入语句为:INSERT INTO Sc VALUES(1078,305,null);4.建立部门表(DEPT) ,属性包括部门编号、部门名称、地

10、址,部门名称要求取值唯一,部门编号为主码CREATE TABLE Dept(sdept char(10) PRIMARY KEY,dname char(20) UNIQUE,dadd char(50),);5.为 STUDENT 表添加约束:性别的值只允许取 “男”或“女” ,学号范围为10000-19999,姓名不能取空值ALTER TABLE StudentADD CONSTRAINT S1 CHECK (ssex in(男,女);验证:当插入记录:INSERT INTO Student VALUES(1024,石一飞,男,23,03);显示如下信息:ALTER TABLE Student

11、 WITH NOCHECKADD CONSTRAINT S3 CHECK (sno=10000and sno =0 and cgrade 100) 0BEGINPRINT insert_update error: you insert the grade 100ROLLBACK TRANSACTIONEND验证:当输入 INSERT INTO Sc VALUES(1086,002,703);显示如下信息10.对 COURSE 表建立插入 -更新触发器,学时小于等于 32 学时时学分不能超过 2 分,学时小于等于 64 学时时学分不能超过 4 分,任何课程的学分最高不能超过 5 分CREATE

12、Trigger Insert_Or_Update_SalON CourseFOR INSERT , UPDATE AS declare thours smallintdeclareccredit intselect (thours=ins.thours and ccredit=ins.ccredit) from inserted ins IF(thours2) if(thours=64 and ccredit5) beginraiserror (警告:非法操作! ,16,1)rollback transactionend有错误,调试不成功。四实验中遇到的问题及解决方法。1,在建立参照完整性约束时,执行如下语句ALTER TABLE Sc ADD CONSTRAINT FK_sno FOREIGN KEY REFERENCES Student(sno);ALTER TABLE Sc ADD CONSTRAINT FK_cno FOREIGN KEY REFERENCES Course(cno);会显示如下情况消息8139,级别16,状态0,第1 行表Student 的外键中引用列的数目与被引用列的数目不等。不能找到原因。触发器这里也有问题

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

当前位置:首页 > 重点行业资料库 > 1

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。