MySQL作业3

8 篇文章 0 订阅
7 篇文章 0 订阅

4.添加数据完整性约束
 

 --在修改表时指定外键约束
        --alter table 表名 add 外键约束

ON DELETE子句:为外键定义父表执行 DELETE(删除)语句时的参照动作。 
ON UPDATE 子句:为外键定义父表执行 UPDATE(修改)语句时的参照动作。 

(1)为学生表student添加外键约束,使其院系代码deptno字段的值必须是院
系表department中院系代码deptno字段已经存在的值,并且要求当修改院系表
department中的deptno字段值时,学生表student中的deptno字段的值也要随之变
化。

alter table student
add foreign key(deptno)
references department(deptno)
on delete set null
on update cascade;

       

(2)为教师表 teacher 指定外键约束,使其院系代码 deptno 字段的值必须是
院系表 department中院系代码 deptno 字段已经存在的值,并且要求当修改院系表 
department 中的 deptno 字段的值时,教师表 teacher 中的 deptno 字段的值也要
随之变化。

alter table teacher
add foreign key(deptno)
references department(deptno)
on delete set null
on update cascade;

(3)为选修成绩表score指定外键约束,使其学号sno字段的值必须是学生表 
student中学号sno字段已经存在的值,并且要求当删除或修改学生表student中的
学号 sno字段的值时,如果选修成绩表score中该学生有相关的记录,则不得删除或
修改。 

alter table score
add foreign key(sno)
references student(sno)
on delete set null
on update cascade;

(4)为选修成绩表 score 指定外键约束,使其课程编号 cno 字段的值必须是
课程表 course 中课程编号 cno 字段已经存在的值,并且要求当删除课程表 course 
中某个课程编号 cno 记录时,如 果选修成绩表 score 中该课程有相关记录,则同时
删除。 

alter table score
add foreign key(cno)
references course(cno)
on delete set null
on update cascade;

(5)为讲授课程表 teaching 指定外键约束,使其教师工号 tno 字段的值必须
是教师表 teacher 中教师工号 tno 字段已经存在的值。

alter table teaching
add foreign key(tno)
references teacher(tno);

(6)为讲授安排表 teaching 指定外键约束,使其课程编号 cno 字段的值必须
是课程表 course 中课程编号 cno 字段已经存在的值。 

alter table teaching
add foreign key(cno)
references course(cno);

----在修改数据表时指定默认值约束 
 ALTER TABLE 表名 MODIFY [ COLUMN ] 字段名称 数据类型 DEFAULT 默
认值; 

(7)为院系表 department 指定默认值约束,即指定负责人 director 的默认
值为“院长”。 

alter table deptment 
modify director varchar(50) default '院长';

----在修改数据表时指定检查约束 
    ALTER TABLE 表名 ADD CHECK( 表达式 ); 

(8)为学生表 student 指定检查约束,即指定性别 sex 字段的值只能是“男”
或“女”。

alter table student add check(sex in('男','女'));

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

婧婧子♔♔♔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值