-- 1.创建 数据库
CREATE DATABASE 学生管理

-- 2.建表
USE 学生管理;
-- （1）院系表
CREATE TABLE 院系表
(
院系 smallint PRIMARY KEY,
名称 varchar(20),
负责人 varchar(10) not null UNIQUE,
办公地点 varchar(20)
);
-- （2）学生表
CREATE TABLE 学生表(
学号 VARCHAR(8) PRIMARY KEY,
院系编号 SMALLINT,
姓名 varchar(10) NOT NULL,
性别 VARCHAR(2) CHECK(性别 IN('男','女')),
生源地 VARCHAR(6),
状态 VARCHAR(4),
FOREIGN KEY(院系编号) REFERENCES 院系表(院系)
);
-- （3）教师表
CREATE TABLE 教师表
(
教师编号 VARCHAR(8) PRIMARY KEY,
院系编号 SMALLINT,
姓名 VARCHAR(10) NOT NULL,
性别 VARCHAR(2) CHECK(性别 IN('男','女')),
职称 VARCHAR(6) CHECK(职称 IN('教授','副教授','讲师','助教')),
专业 VARCHAR(10),
FOREIGN KEY (院系编号) REFERENCES 院系表(院系)
);
-- （4）课程表
CREATE TABLE 课程表
(
课程编号 VARCHAR(8) PRIMARY KEY,
课程名称 VARCHAR(20) NOT NULL,
责任教师 VARCHAR(8),
学时 SMALLINT,
课程性质 VARCHAR(10) CHECK(课程性质 IN('公共基础','专业基础','专业选修','任意选修')),
FOREIGN KEY(责任教师) REFERENCES 教师表(教师编号)
);
-- （5） 选课表
CREATE TABLE 选课表(
学号 VARCHAR(8),
课程编号 VARCHAR(8),
成绩 SMALLINT DEFAULT NULL CHECK(成绩 BETWEEN 0 AND 100),
PRIMARY KEY(学号,课程编号),
FOREIGN KEY(学号) REFERENCES 学生表(学号),
FOREIGN KEY(课程编号) REFERENCES 课程表(课程编号)
);