数据操作和完整性约束的作用(2)

2018-12-06 20:14

insert into 学生 values('28',10,'谌敏','女','芜湖市','退学',NULL) insert into 学生 values('29',10,'徐松','男','合肥市','休学',NULL) insert into 学生 values('30',3,'朱茵','女','合肥市','正常',NULL)

--在课教师中插入10条记录

insert into 教师 values('1',1,'赵燕','女','教授','汽车与智能',3200.00)

insert into 教师 values('2',2,'李敏','女','教授','电子应用',3400) insert into 教师 values('3',3,'王艳艳','女','讲师','机械应用',2900) insert into 教师 values('4',4,'谭维维','女','副教授','园林园艺',3600)

insert into 教师 values('5',5,'李佳薇','女','副教授','素描',2500) insert into 教师 values('6',6,'杨会伟','男','讲师','人文',4000) insert into 教师 values('7',7,'王丽玲','女','副教授','万有引力',3800)

insert into 教师 values('8',8,'陶维成','男','教授','英语',3250) insert into 教师 values('9',9,'万振宇','男','助教','乒乓球',2600) insert into 教师 values('10',10,'方梁雨','女','助教','商代',4500) --在课程表中插入10条记录

insert into 课程 values('1','汽车智能与应用','1',16,'公共基础') insert into 课程 values('2','模拟电路','2',16,'公共基础') insert into 课程 values('3','器械基础','3',8,'专业基础') insert into 课程 values('4','嫁接技术','4',16,'专业基础')

insert into 课程 values('5','素描','5',8,'专业基础') insert into 课程 values('6','大学语文','6',16,'专业选修') insert into 课程 values('7','万有引力','7',8,'任意选修') insert into 课程 values('8','口语','8',16,'专业选修') insert into 课程 values('9','乒乓球','9',16,'任意选修') insert into 课程 values('10','商代渠道','10',8,'专业基础') --在选课表中插入10条记录

insert into 选课 values('1','1',100) insert into 选课 values('1','2',99) insert into 选课 values('1','3',95) insert into 选课 values('1','4',89) insert into 选课 values('1','5',89) insert into 选课 values('2','6',78) insert into 选课 values('2','7',78) insert into 选课 values('2','8',78) insert into 选课 values('2','9',78) insert into 选课 values('2','10',78) insert into 选课 values('3','1',98) insert into 选课 values('3','2',98) insert into 选课 values('3','3',98) insert into 选课 values('3','4',98) insert into 选课 values('3','5',98) insert into 选课 values('4','1',90)

insert into 选课 values('4','2',90) insert into 选课 values('4','3',90) insert into 选课 values('4','5',90) insert into 选课 values('4','4',90) insert into 选课 values('5','5',69) insert into 选课 values('5','6',69) insert into 选课 values('5','7',69) insert into 选课 values('5','8',69) insert into 选课 values('5','9',69) insert into 选课 values('6','1',75) insert into 选课 values('6','2',75) insert into 选课 values('6','3',75) insert into 选课 values('6','4',75) insert into 选课 values('6','5',75) insert into 选课 values('7','7',65) insert into 选课 values('7','8',65) insert into 选课 values('8','9',65) insert into 选课 values('9','7',65) insert into 选课 values('10','7',65) insert into 选课 values('8','8',65) insert into 选课 values('9','8',65) insert into 选课 values('10','8',65) --删除操作

DELETE 选课 WHERE 学号='1' DELETE 学生 WHERE 状态 = '退学' --更新操作

UPDATE 选课 SET 成绩=89 WHERE 课程编号 ='6' UPDATE 教师 SET 职称 = '教授' WHERE 职称='助教' 三、实验分析与小结 (一)实验分析

1.使用INSERT命令完成记录的插入操作,要求分别设计若干违反实体完整性、参照完整性和用户自定义完整性和用户定义完整性约束的插入操作 1>违反实体完整性规则即主关键字为空或重复。例如:

insert into 院系 values(NULL,'计科系','马主任','36栋301室') insert into 院系 values(2,'电气系','赵主任','35栋302室') 上例中的第一行代码的主键值为空,第二行代码的主键值与院系表中的主键值重复,故以上两个插入操作失败。要想使其代码成功,应当遵守主关键字中的属性的唯一性和非空值规则。或者删除约束,如:

ALTER TABLE 院系 ADD CONSTRAINT yx_pk PRIMARY KEY(编号) ALTER TABLE 院系 DROP CONSTRAINT yx_pk

因为删除主键将会影响后期的操作,不建议删除约束。

2>违反参照完整性规则即外键取空值或等于所参照表中的主关键字的值。例如

insert into 选课 values(NULL,'1',100) 删除参照完整性约束可用如下删除约束语句

ALTER TABLE 选课 ADD CONSTRAINT xk_fk FOREIGN KEY(学号) REFERENCES

学生(学号)

ALTER TABLE 选课 DROP CONSTRAINT xk_fk 或者按照参照完整性规则进行输入。 3>违反用户定义完整性约束举例: insert into 选课 values('10','8',150)

insert into 课程 values('10','商代渠道','10',10,'专业基础') insert into 课程 values('10','商代渠道','10',8,'基础专业') 由建表示的check约束可知选课表的成绩字段只能取0-100之间;课程表中的学时字段只能取8的倍数;和课程表的课程数据的取值只能为“公共基础”、“专业基础”、“专业选修”和“任意选修”。故这三个例子中的红色部分的数据都违反了用户定义完整性约束,不能进行插入。只有插入正确的数据或删除约束时才可以进行插入。

ALTER TABLE 选课 ADD CONSTRAINT chance_xk CHECK(成绩>= 0 AND 成绩<= 100)

ALTER TABLE 选课 drop CONSTRAINT chance_xk

ALTER TABLE 课程 drop CONSTRAINT chance_xueshi --删除对课程表的学时字段约束

ALTER TABLE 选课 ADD CONSTRAINT chance_xueshi1 CHECK(课程性质='公共基础' OR 课程性质='专业基础' OR 课程性质='专业选修' OR 课程性质='任意选修')

ALTER TABLE 选课 DROP CONSTRAINT chance_xueshi1

删除操作和更新操作与插入操作的实体完整性规则、参照完整性规则和用户完整性类似,不同的是插入操作用INSERT,删除用DELETE,更新用UPDATE

命令而已。 (二)总结

在这个实验中却教会了我们在插入、删除和更新操作时若违反了实体完整性、参照完整性和用户自定义完整性规则时,怎么解决。

得分(百分制)


数据操作和完整性约束的作用(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:关于进一步加强深基坑工程建设管理的通知

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: