表定义:创建sc表 创建sc(选课表) 列名 说明 数据类型 约束 SNO 学号 CHAR(7) 主码 引用Student的外码,设置删除限制,更新级联 CNO 课程号 CHAR(10) 主码,引用Course的外码,设置删除限制,更新级联 GRADE 成绩 SMALLINT
时间: 2023-04-01 20:00:54 浏览: 416
我可以回答这个问题。这是一个表定义,用于创建一个名为sc的选课表。该表包含三列,分别是学号(SNO)、课程号(CNO)和成绩(GRADE)。其中,学号和课程号都是主码,数据类型分别为CHAR(7)和CHAR(10)。此外,学号列还引用了Student表的外码,并设置了删除限制和更新级联;课程号列也引用了Course表的外码,并设置了删除限制和更新级联。
相关问题
用SQL语句创建如下三张表:学生(Student),课程表(Course),和学生选课表(SC)。 表1-1 Student表结构列名说明数据类型约束Sno学号字符串,长度为7主码Sname姓名字符串,长度为10非空Ssex性别字符串,长度为2取‘男’或‘女’Sage年龄整数取值15~45Sdept所在系字符串,长度为20默认为‘计算机系’ 表1-2Course表结构列名说明数据类型约束Cno课程号字符串,长度为10主码Cname课程名字符串,长度为20非空Ccredit学分整数取值大于0Semster学期整数取值大于0Period学时整数取值大于0 表1-3 SC表结构列名说明数据类型约束Sno学号字符串,长度为7主码,引用Student的外码Cno课程名字符串,长度为10主码,引用CourseGrade成绩整数取值0~100
下面是创建三张表的 SQL 语句:
创建学生表:
```
CREATE TABLE Student (
Sno CHAR(7) PRIMARY KEY,
Sname VARCHAR(10) NOT NULL,
Ssex VARCHAR(2) CHECK(Ssex IN ('男', '女')),
Sage INT CHECK(Sage BETWEEN 15 AND 45),
Sdept VARCHAR(20) DEFAULT '计算机系'
);
```
创建课程表:
```
CREATE TABLE Course (
Cno CHAR(10) PRIMARY KEY,
Cname VARCHAR(20) NOT NULL,
Ccredit INT CHECK(Ccredit > 0),
Semester INT CHECK(Semester > 0),
Period INT CHECK(Period > 0)
);
```
创建学生选课表:
```
CREATE TABLE SC (
Sno CHAR(7),
Cno CHAR(10),
Grade INT CHECK(Grade BETWEEN 0 AND 100),
PRIMARY KEY (Sno, Cno),
FOREIGN KEY (Sno) REFERENCES Student(Sno),
FOREIGN KEY (Cno) REFERENCES Course(Cno)
);
```
注意:在创建学生选课表时,需要先创建学生表和课程表。同时,学生选课表中的学号和课程号均为主键,且分别引用学生表和课程表中的主键。
创建SC1表 属性:Sno(学号) Cno(课程号) Grade(成绩) SC1 的约束: 主码:(sno,cno) ,主码名为 PK_SC l成绩(grade)只能在 0 – 100分之间 SC1的外码: 外码:SC1 表的sno 参照表 student1 的 sno 外码:SC1 表的Cno 参照表 course1 的 cno
可以使用以下 SQL 语句创建 SC1 表:
```
CREATE TABLE SC1 (
Sno CHAR(10),
Cno CHAR(10),
Grade INT,
PRIMARY KEY (Sno, Cno),
CONSTRAINT PK_SC PRIMARY KEY (Sno, Cno),
CONSTRAINT CHK_Grade CHECK (Grade >= 0 AND Grade <= 100),
CONSTRAINT FK_Sno FOREIGN KEY (Sno) REFERENCES student1 (sno),
CONSTRAINT FK_Cno FOREIGN KEY (Cno) REFERENCES course1 (cno)
);
```
解释如下:
- `Sno CHAR(10)`:学号属性,使用 CHAR 类型,长度为 10。
- `Cno CHAR(10)`:课程号属性,使用 CHAR 类型,长度为 10。
- `Grade INT`:成绩属性,使用 INT 类型。
- `PRIMARY KEY (Sno, Cno)`:设置 Sno 和 Cno 为主键。
- `CONSTRAINT PK_SC PRIMARY KEY (Sno, Cno)`:设置主键名称为 PK_SC。
- `CONSTRAINT CHK_Grade CHECK (Grade >= 0 AND Grade <= 100)`:设置成绩的取值范围为 0 到 100。
- `CONSTRAINT FK_Sno FOREIGN KEY (Sno) REFERENCES student1 (sno)`:设置 Sno 为外键,参照表为 student1 的 sno 属性。
- `CONSTRAINT FK_Cno FOREIGN KEY (Cno) REFERENCES course1 (cno)`:设置 Cno 为外键,参照表为 course1 的 cno 属性。
阅读全文