创建SC表结构和约束 列 名 称 类 型 宽度 允许空值 默认值 约 束 主键 外键 说明 Sno Char 8 否 是 是 学号 Cno Char 3 否 是 课程号 Grade Tinyint 是 大于等于0,小于等于100 否 成绩
时间: 2024-03-23 15:38:22 浏览: 82
以下是创建名为 SC 的表格的 SQL 语句,其包含上述的列名、类型、宽度、允许空值、默认值、约束和说明:
```
CREATE TABLE SC (
Sno CHAR(8) NOT NULL,
Cno CHAR(3) NOT NULL,
Grade TINYINT CHECK (Grade >= 0 AND Grade <= 100),
PRIMARY KEY (Sno, Cno),
FOREIGN KEY (Sno) REFERENCES Student(Sno),
FOREIGN KEY (Cno) REFERENCES Course(Cno)
);
```
在此表中,Sno 和 Cno 列被指定为联合主键,这意味着每个学生选修的每门课程的记录必须是唯一的。Grade 列被指定为可选,但它还包含一个 CHECK 约束,该约束确保该列的值大于等于0且小于等于100。此外,Sno 和 Cno 列还被指定为外键,分别参考于 Student 和 Course 表中的 Sno 和 Cno 列,这确保了在 SC 表中只能插入已存在于 Student 和 Course 表中的学生和课程。
相关问题
使用SQL语言创建以下3个数据表:学生表(student)、课程表(course)、学生选课表(SC),分别写出SQL语句。 各表的结构分别如下: student表结构: 字段名称 数据类型 是否为空 约束 说明 SNo char(8) 否 主键 SName varchar(20) 否 唯一值 SGender char(2) 否 检查约束 为男或女 SAge int 可以 Scredits int 可以 · course表结构: 字段名称 数据类型 是否允许空值 约束 说明 CNo char(5) 否 主键 课程编号 CName varchar(30) 否 唯一值 课程名称 CPno char(5) 可以 外键course(CNO) 先修课程 CCredits int 可以 默认值4 学分 · SC表结构: 字段名称 数据类型 是否允许空值 约束 说明 SNo char(8) 否 外键 学号 CNo char(5) 否 外键 课程编号 Score decimal(3,1) 可以 0~100 成绩
创建student表的SQL语句:
```SQL
CREATE TABLE student (
SNo CHAR(8) NOT NULL,
SName VARCHAR(20) NOT NULL UNIQUE,
SGender CHAR(2) NOT NULL CHECK(SGender IN ('男', '女')),
SAge INT,
Scredits INT,
PRIMARY KEY (SNo)
);
```
创建course表的SQL语句:
```SQL
CREATE TABLE course (
CNo CHAR(5) NOT NULL,
CName VARCHAR(30) NOT NULL UNIQUE,
CPno CHAR(5),
CCredits INT DEFAULT 4,
PRIMARY KEY (CNo),
FOREIGN KEY (CPno) REFERENCES course(CNo)
);
```
创建SC表的SQL语句:
```SQL
CREATE TABLE SC (
SNo CHAR(8) NOT NULL,
CNo CHAR(5) NOT NULL,
Score DECIMAL(3, 1),
PRIMARY KEY (SNo, CNo),
FOREIGN KEY (SNo) REFERENCES student(SNo),
FOREIGN KEY (CNo) REFERENCES course(CNo),
CHECK (Score BETWEEN 0 AND 100)
);
```
阅读全文