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);