1. 写出用Create Table创建表student1、course1、sc1 ,并按下列要求设置完整性约束。要求: (1)Student1表 属性:Sno(学号) Sname(姓名) Ssex(性别) Sage (年龄) Sdept(系部) student 的约束: 主码:sno Sname不可为空,且唯一 性别 不能为空且取值范围为{男,女} check (ssex in (‘男’,‘女’)) 年龄大于16岁 check (2) Course1表 属性:Cno(课程号) Cname(课程名) Cpno(先修课号) Ccredit(学分) course 的约束: 主码:cno Ccredit 取值范围[ 1-6 ] Course表的外码Cpno ,参照表Course的Cno (3) SC1表 属性:Sno(学号) Cno(课程号) Grade(成绩) SC1 的约束: 主码:(sno,cno) 成绩(grade)只能在 0 – 100分之间 check Sc1的外码: 外码:SC 表的sno 参照表 student 的 sno 外码:sc 表的Cno 参照表 course 的 cno
时间: 2024-03-12 14:44:58 浏览: 236
NuMicro-M051_V1.0_SC1新唐中文手册
5星 · 资源好评率100%
以下是用Create Table创建表student1、course1、sc1并设置完整性约束的SQL语句:
```sql
CREATE TABLE student1 (
Sno CHAR(10) PRIMARY KEY,
Sname VARCHAR(20) UNIQUE NOT NULL,
Ssex CHAR(2) NOT NULL CHECK (Ssex IN ('男', '女')),
Sage INT CHECK (Sage > 16),
Sdept VARCHAR(20) NOT NULL
);
CREATE TABLE course1 (
Cno CHAR(10) PRIMARY KEY,
Cname VARCHAR(20) NOT NULL,
Cpno CHAR(10),
Ccredit INT CHECK (Ccredit BETWEEN 1 AND 6),
FOREIGN KEY (Cpno) REFERENCES course1(Cno)
);
CREATE TABLE sc1 (
Sno CHAR(10),
Cno CHAR(10),
Grade INT CHECK (Grade BETWEEN 0 AND 100),
PRIMARY KEY (Sno, Cno),
FOREIGN KEY (Sno) REFERENCES student1(Sno),
FOREIGN KEY (Cno) REFERENCES course1(Cno)
);
```
其中,student1表的约束见问题1的回答。course1表的主键为Cno,Cpno为先修课号,可以为空;Ccredit为学分,必须在1-6之间,是一个整数;Cpno是一个外键,参照表Course1的Cno。sc1表的主键为(Sno, Cno),表示学生选课情况,Grade为成绩,必须在0-100之间,是一个整数;Sno和Cno都是外键,分别参照表student1和course1的主键Sno和Cno。
阅读全文