MySQL,刷题之对完整性约束操作,题+代码!!

1、创建一个数据库StuM。
2、在数据库stuM中创建如下四个表:
创建院系表Dept、Students表、Courses表、SC表,学生表结构见实验要求。
     3、在以上表的基础上继续完成以下内容:
(1)修改Students表,修改政治面貌属性默认值为团员。
(2)修改Students表,删除学生表中的简历字段。
(3)修改Students表,添加一个字段“Senrolltime”,表示入学时间,数据类型为:TIMESTAMP,可以为空,且该字段的默认值为当天。(使用CURRENT_TIMESTAMP 表示当天)
(4)修改SC表,添加外码约束,外键是Cno,参照courses表中的主键Cno,级联修改,拒绝删除。
(5)修改表Dept,添加唯一约束,约束“院系名称”的值不能重复。
create database if not exists stum;

USE stum;
CREATE TABLE IF NOT EXISTS `Dept`(
`Dno` CHAR(4) NOT NULL COMMENT '院系编号',
`Dname` VARCHAR(30) NOT NULL COMMENT '院系名称',
`Dtel` VARCHAR(12) COMMENT '联系电话', 
PRIMARY KEY (`Dno`),
foreign key (Do) references Dept(Sdept)on delete restrict
);
CREATE TABLE IF NOT EXISTS `Students`(
`Sno` CHAR(12) PRIMARY KEY COMMENT '学号',
`Sname` VARCHAR(10) NOT NULL COMMENT '姓名',
`Ssex` CHAR(2) DEFAULT '男' COMMENT '性别',
`Sbirth` Date COMMENT '出生日期',
`Spolitic` enum('党员','团员','其他') COMMENT '政治面貌',
`Sdept` CHAR(4) comment '所属院系',
`Sresume` text COMMENT '简历',
`Spersoncard` CHAR(18) UNIQUE COMMENT '身份证号',
foreign key (Sdept) references Dept(Sdept) on delete restrict
);
CREATE TABLE IF NOT EXISTS `Courses`(
`Cno` CHAR(6) NOT NULL COMMENT '课程编号',
`Cname` VARCHAR(30) NOT NULL COMMENT '课程名称',
`Cpno` CHAR(6) COMMENT '先行课程',
`Ccredit` TINYINT DEFAULT 1,
PRIMARY KEY (`Cno`)
);
CREATE TABLE IF NOT EXISTS `SC`(
`ID` int AUTO_INCREMENT PRIMARY KEY comment '序号',
Sno char(12) not null comment '学号',
Cno char(6) NOT NULL COMMENT '课程编号',
grade decimal(6,2) unsigned check (grade >= 0 && grade <= 100)
);
# 1
alter table students enum('团员','党员','其他') default '团员';
# 2
alter table students drop Scresume;
# 3
alter table students add Senrolltime timestamp null default current_timestamp;
# 4
ALTER TABLE sc ADD CONSTRAINT courses FOREIGN KEY (Cno) REFERENCES sc(Cno) on delete restrict
# 5
alter table dept add CONSTRAINT unique(Dname);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值