(5)添加表级约束外键,要求使学生成绩表的学号列参照学生表的学号列,利用参照完整性实现。,代码输出来
时间: 2024-11-12 12:45:59 浏览: 5
在SQL中,为了在学生成绩表(假设名为`grades`)上添加表级约束外键,使其参考学生表(假设名为`sudents`)的学号列,你可以使用下面的ALTER TABLE语句来创建一个外键约束。这里以MySQL为例:
```sql
ALTER TABLE grades
ADD CONSTRAINT fk_student_id
FOREIGN KEY (student_id)
REFERENCES students(student_id)
ON DELETE CASCADE ON UPDATE CASCADE;
```
在这段代码中:
- `fk_student_id` 是外键约束的名称,可以根据需要自定义。
- `student_id` 是你想引用的学生表中的学号字段。
- `REFERENCES students(student_id)` 指定外键引用的是学生表的哪个字段。
- `ON DELETE CASCADE` 如果删除了学生表中的记录,那么成绩表中相应的记录也会自动删除。
- `ON UPDATE CASCADE` 如果更新了学生表中的记录,那么成绩表中对应的记录也会相应更新。
相关问题
1、创建成绩表,学号、课程号是外键,分数默认为0,限制在0-100之间 2、修改学生表结构,使其性别字段只能输入男或女两个字 3、删除学生表的记录时,级联删除成绩表中的相关记录 4、修改学生表的学号时,级联修改成绩表中的学号 5、系部表中增加学生人数字段,默认值为0
1.创建成绩表,包含学号、课程号、分数三个字段,其中学号和课程号为外键,分数默认为0,限制在0-100之间:
```sql
CREATE TABLE score (
id INT(11) NOT NULL AUTO_INCREMENT,
student_id INT(11) NOT NULL,
course_id INT(11) NOT NULL,
score INT(11) NOT NULL DEFAULT '0',
PRIMARY KEY (id),
FOREIGN KEY (student_id) REFERENCES student(id) ON DELETE CASCADE,
FOREIGN KEY (course_id) REFERENCES course(id) ON DELETE CASCADE,
CONSTRAINT score_range CHECK (score >= 0 AND score <= 100)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
```
2.修改学生表结构,使其性别字段只能输入男或女两个字:
```sql
ALTER TABLE student
MODIFY COLUMN gender ENUM('男', '女') NOT NULL;
```
3.删除学生表的记录时,级联删除成绩表中的相关记录:
```sql
ALTER TABLE score
ADD CONSTRAINT fk_student_score FOREIGN KEY (student_id) REFERENCES student(id) ON DELETE CASCADE;
```
4.修改学生表的学号时,级联修改成绩表中的学号:
```sql
ALTER TABLE score
DROP FOREIGN KEY fk_student_score;
ALTER TABLE student
CHANGE COLUMN id new_id INT(11) NOT NULL AUTO_INCREMENT;
ALTER TABLE score
CHANGE COLUMN student_id new_id INT(11) NOT NULL;
ALTER TABLE score
ADD CONSTRAINT fk_student_score FOREIGN KEY (new_id) REFERENCES student(new_id) ON DELETE CASCADE;
```
5.系部表中增加学生人数字段,默认值为0:
```sql
ALTER TABLE department
ADD COLUMN student_count INT(11) NOT NULL DEFAULT 0;
```
创建一个“成绩”表,包括:学号、课程号、成绩(0-100),主键为学号和课程号的组合,并为成绩表创建外键约束,该约束把“成绩”表中的“学号”字段和“学生”表中的“学号”字段关联起来。
好的,您想要创建一个“成绩”表,包括学号、课程号和成绩三个字段,主键为学号和课程号的组合,并为成绩表创建外键约束,将“成绩”表中的“学号”字段和“学生”表中的“学号”字段关联起来。您可以使用以下SQL语句来实现:
```
CREATE TABLE 成绩 (
学号 VARCHAR(10),
课程号 VARCHAR(10),
成绩 INT,
PRIMARY KEY (学号, 课程号),
FOREIGN KEY (学号) REFERENCES 学生(学号)
);
```
这段代码将会创建一个名为“成绩”的表,包括三个字段:学号、课程号和成绩。该表的主键为学号和课程号的组合,并将学号字段作为外键约束,引用了名为“学生”的表中的学号字段。这样,每当在“成绩”表中插入一条记录时,都必须保证该学号在“学生”表中存在,否则将无法插入。
阅读全文