2. 创建表sc,并同时创建约束,表结构及约束要求如表A-8 字段 类型 是否空 约束 学号 CHAR(4) 否 外键参照 stu 表中的学号列(约束名 fk_sno) 课号 CHAR (4) 否 成绩 DECIMAL (5,2) 是 0≤成绩≤100
时间: 2024-11-06 07:21:26 浏览: 39
在SQL中,你可以使用CREATE TABLE语句来创建一个名为sc的新表,同时指定各个字段、数据类型、允许为空与否以及添加约束条件。根据提供的信息,下面是创建表sc的示例:
```sql
CREATE TABLE sc (
学号 CHAR(4) NOT NULL,
课号 CHAR(4) NOT NULL,
成绩 DECIMAL(5,2) CHECK (成绩 >= 0 AND 成绩 <= 100),
CONSTRAINT fk_sno FOREIGN KEY (学号)
REFERENCES stu (学号)
ON DELETE CASCADE -- 如果stu表中的学号被删除,自动删除sc表中的相关记录
ON UPDATE CASCADE -- 如果stu表中的学号被更新,sc表中的相关记录也更新
);
```
在这个例子中:
1. `学号` 和 `课号` 字段不允许为空(`NOT NULL`),分别参照了stu表的学号(`fk_sno` 约束)。
2. `成绩` 字段是一个两位小数的数值,范围在0到100之间,通过`CHECK`约束确保。
3. `fk_sno` 是一个外键约束,它指定了学号字段是stu表学号的一个引用。
相关问题
使用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)
);
```
学生数据库有3个表,其数据结构如下: student 字段名 学号 姓名 性别 出生日期 院系 数据类型 char (8) varchar (20) char (2) date varchar (20) 说明 主键 非空 无 无 无 course 字段名 课程号 课程名称 学分 数据类型 char (4) varchar (30) int 说明 主键 非空 无 sc 字段名 学号 课程号 成绩 数据类型 char (8) char (4) real 说明 外键 外键 无 其中, sc 表的学号与课程号为主键。 (1) 以下创建数据表 course 的 T - SQL 语句中,有一个错误行,请写出错误的行号并更正(如行号表示为3#)。 1#: CREATE DATABASE course 2#:( 3#:课程号 char (4) PRIMARY KEY , 4#:课程名称 varchar (30) NOT NULL , 5#:学分 int 6#:) (2)写出创建 sc 表的 T - SQL 语句。 (3)写出从 student 表中删除院系字段的 T - SQL 语句。
(1) 正确的创建数据表 course 的 T-SQL语句应该是:
CREATE TABLE course (
课程号 char(4) PRIMARY KEY,
课程名称 varchar(30) NOT NULL,
学分 int
);
错误行为第2行,应该删除括号。
(2) 创建 sc 表的 T-SQL 语句如下:
CREATE TABLE sc (
学号 char(8),
课程号 char(4),
成绩 real,
PRIMARY KEY (学号, 课程号),
FOREIGN KEY (学号) REFERENCES student(学号),
FOREIGN KEY (课程号) REFERENCES course(课程号)
);
(3) 从 student 表中删除院系字段的 T-SQL 语句如下:
ALTER TABLE student DROP COLUMN 院系;
阅读全文