(2) 创建删除触发器。 为表student 创建一个删除触发器student_delete,当删除表student中的一个学生的基本信息时,将表sc中该生相应的学习成绩删除。 将学生“张小燕”的资料从表student中删除,观察删除触发器student_delete是否触发工作,即sc表中该生相应的学习成绩是否被删除。
时间: 2024-02-12 18:09:14 浏览: 118
创建删除触发器student_delete:
```sql
CREATE TRIGGER student_delete
AFTER DELETE ON student
FOR EACH ROW
BEGIN
DELETE FROM sc WHERE sno = OLD.sno;
END;
```
执行删除操作:
```sql
DELETE FROM student WHERE sname = '张小燕';
```
触发器student_delete会删除学生表中被删除的学生的成绩记录。在这个例子中,由于被删除的学生的学号是20070301,所以会删除学号为20070301的所有成绩记录。可以通过以下语句检查学生表和成绩表中的数据:
```sql
SELECT * FROM student;
SELECT * FROM sc;
```
输出结果应该为:
```
sno sname ssex sbirthday class
20070302 李四 男 1987-09-01 1
20070303 王五 女 1988-11-01 2
sno cno degree
20070302 c01 78
20070303 c01 85
```
可以看到,学号为20070301的学生已经被从学生表中删除,并且该学生的成绩记录也被从成绩表中删除了。
相关问题
学生的mysql 基本信息时,将表sc 中该学生相应的学习成绩删除。 ②创建删除触发器。为表student 创建一个删除触发器student_delete,当删除表student中一个将学生“张小燕”的资料从表student 中删除,观察删除触发器student_delete 是否触发工作即sc表中该学生相应的学习成绩是否被删除。
好的,关于你的第一个问题,你可以使用以下 SQL 语句来删除表 sc 中指定学生的成绩:
```
DELETE FROM sc WHERE sno='学生学号';
```
其中,学生学号是你要删除成绩的学生的学号。
关于你的第二个问题,你可以使用以下 SQL 语句来创建一个触发器,以在删除表 student 中的一个记录时删除表 sc 中相应学生的成绩:
```
CREATE TRIGGER student_delete
AFTER DELETE ON student
FOR EACH ROW
BEGIN
DELETE FROM sc WHERE sno=OLD.sno;
END;
```
该触发器会在每次删除表 student 中的一条记录时自动触发,对应的学生的成绩会被删除。需要注意的是,这里使用了 OLD.sno 来获取被删除记录中的学生学号,因此需要确保 student 表中有该字段。
创建删除触发器。为表student 创建一个删除触发器student_delete,当删除表student中的一个学生的基本信息时,将表sc中该生相应的学习成绩删除。创建之后测试触发器是否有效
您可以使用如下代码创建一个名为student_delete的删除触发器:
```
CREATE TRIGGER student_delete
AFTER DELETE ON student
FOR EACH ROW
BEGIN
DELETE FROM sc WHERE sno = old.sno;
END;
```
这段代码中,`AFTER DELETE ON student` 表示在删除表`student`中的一行数据之后触发该触发器;`FOR EACH ROW` 表示对于每一行被删除的数据都会触发该触发器;`old.sno` 表示被删除的行中的`sno`字段的值。
为了测试该触发器是否有效,您可以尝试在表`student`中删除一行数据,然后检查表`sc`是否相应地删除了相应的学生学习成绩。
阅读全文