数据库完整性实验

create table student

 

(

 sno char(20) primary key,

 sname char(20) not null,

 ssex char(20),

 sage int,

 sdept char(20)

);

 

create table course(

 cno char(20) primary key,

 cname char(20) not null,

 cpno char(20),

 ccredit int ,

 foreign key(cpno) references course(cno)

 

);

 

 create table sc(

 sno char(20) not null,

 cno char(20) not null,

 grade int,

 

 primary key(sno,cno),

 foreign key(sno) references student(sno),

 foreign key(cno) references course(cno)

);

 

select * from student;

 

实体完整性

 

1.插入student  id一样时

insert into student values(2,'zhangsan','',25,'cs');

 

insert into student values(2,'zhangsan','',25,'cs');

insert into student(sname) values('zhangsan');

2.更新student 将名字为lisisno修改为已结有sno唯一的数据

UPDATE student SET sno = 1 WHERE sname = 'lisi' ;

 

参照完整性

参照表SC  被参照表STUDENT

1.插入sc

insert into sc values (1,2,60);

插入课程表

insert into  course values(1,'数据库原理',null,8);

满足条件

insert into sc values (1,1,60);

select * fromsc;

 

2.修改sc表中外码值

UPDATE sc SET sno = 9 WHERE grade = 60 ;

 

3.删除student表中的元组

delete student where sno=1;

 

4.修改student表中的主码值

UPDATE student SET sno = 9 WHERE sname = 'zhangsan' ;

 

用户定义的完整性

1不允许空值

insert into sc values (1,null,60);

 

2列值唯一

create table dept(deptno int,dname char(20) unique not null , loc char(20),primary key (deptno));

 

insert into dept values (1,'信息','包头青山区');

insert into dept values (2,'信息','包头昆区');

 

3check短语指定值应该满足的条件

create table stu(sno char(9) primary key,sname char(20) not null , ssex char(2) check (ssex in('','')) ,sage int ,sdept char(20) );

 

insert into stu values ('1','zhangsan','',25,'CS');

 

4元组上的约束条件

 

create table stu1(sno char(10),sname char(10) not null , ssex char(20) , sage int , sdept char(20), primary key (sno), check (ssex='' or sname  not like 'Ms.%'));

 

insert into stu1 values('1','zhangsan','',25,'CS');

 

insert into stu1 values('2','zhangsan','',25,'CS');

 

insert into stu1 values('3','Ms.zhangsan','',25,'CS');

insert into stu1 values('3','Ms.zhangsan','',25,'CS');


  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据库完整性实验实验完整代码 打开ScoreDB数据库,完成以下操作: (1)分别定义ScoreDB数据库中各基表的主键、外键,实现实体完整性约束和参照完整性约束; (2)往student表插入一条跟已有的学号相同的学生数据,验证实体完整性约束; (3)向score表中插入一条数据,其中数据中的课程编号是课程表中没有的,验证参照完整性约束; (4)修改score表中一条数据的课程编号,该编号是课程表中没有的,验证参照完整性约束; (5)删除student表中的一条数据(其中学号出现在score表中),验证参照完整性约束。 (6)增加score表的约束条件,要求成绩在0-100之间。增加student表的约束条件,要求性别只允许取“男”或“女”。 (7)创建一个触发器student_update,实现功能:如果在学生表中修改了学号,则自动修改成绩表中的学号。 (8)创建一个级联删除触发器student_delete。要求:当从学生表中删除某学生信息时,同时删除score表中此学生相关的选课记录。 (9)创建一个触发器student_insert,实现功能:如果往学生表中插入数据,则自动修改班级表中的班级人数classNum。(如果改为删除数据,代码要怎么改?) (10)建立一个触发器course_check,每当删除课程表中记录时,先检查此课程是否已被选修,如选修则不允许删除,且给出提示信息“此课程已有学生选修,无法删除!”。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值