题目要求
用SQL语句创建如表5-1到表5-3所示表结构的三张表:学生表( Student)、课程表( Course)和学生选课表(SC)。
列名 | 说明 | 数据类型 | 约束 |
---|
sno | 学号 | Char(10) | NOT Null |
sname | 姓名 | Char(10) | NOT Null |
ssex | 性别 | Char(2) | 取值为“男”或“女”,默认为“男” |
sage | 年龄 | int | 取值为15~35 |
sdept | 所在系 | Char(20) | |
列名 | 说明 | 数据类型 | 约束 |
---|
cno | 课程号 | Char(10) | 主码 |
cname | 课程名 | Char(20) | 非空 |
ccredit | 学分 | tinyint | >0 |
semster | 学期 | tinyint | >=1并且<=8 |
period | 学时 | int | >0 |
列名 | 说明 | 数据类型 | 约束 |
---|
sno | 学号 | Char(10) | 主码,引用student的外码 |
cno | 课程号 | Char(10) | 主码,引用course的外码 |
grade | 成绩 | tinyint | 取值0~100 |
create database 教学管理库
use 教学管理库
create table student
(
sno char(10) primary key,
sname varchar(10) not null,
ssex char(2) check(ssex in ('男','女')) default '男',
sbirthday date check ((year(getdate())-year(sbirthday)) between 15 and 35),
sdept varchar(50)
)
create table course
(
cno char(10) primary key,
cname varchar(50) not null unique,
ccredit tinyint check (ccredit >=0) default 2,
semeter tinyint check (semeter between 1 and 8),
period int check (period >0)
)
create table sc
(
sno char(10),
cno char(10),
grade tinyint check (grade between 0 and 100),
primary key (sno,cno),
foreign key (sno) references student (sno)
on update cascade
on delete cascade,
foreign key (cno) references course (cno)
on update no action
on delete no action
)