在学生表中增加一个“avgGrade’字段记录学生的平均成绩,创建触发器, 当输入某个同学选课成绩时,更新其平均成绩:使用SQL语句往加sc表插 入记录,观察触发器何时触发
时间: 2023-12-15 13:05:36 浏览: 340
如何使用SQL语句创建触发器
首先,需要在学生表中增加一个“avgGrade”字段来记录学生的平均成绩。可以使用以下SQL语句来实现:
```
ALTER TABLE student ADD avgGrade FLOAT;
```
接下来,创建触发器来更新学生的平均成绩。当输入某个同学选课成绩时,触发器会自动计算该学生的平均成绩并更新到学生表中的“avgGrade”字段中。可以使用以下SQL语句来创建触发器:
```
CREATE TRIGGER update_avgGrade AFTER INSERT ON sc
FOR EACH ROW
BEGIN
UPDATE student SET avgGrade = (SELECT AVG(score) FROM sc WHERE student.id = sc.id) WHERE student.id = NEW.id;
END;
```
其中,触发器使用了AFTER INSERT语句,表示在插入新纪录之后触发;FOR EACH ROW表示对于每一条插入的记录都会执行触发器中的操作;NEW.id表示插入的新纪录中的学生ID。
最后,使用以下SQL语句往sc表插入记录,观察触发器何时触发:
```
INSERT INTO sc (id, course, score) VALUES (1001, 'Math', 90);
```
当插入了新纪录之后,触发器就会自动计算该学生的平均成绩并更新到学生表中的“avgGrade”字段中。可以使用以下SQL语句来查看学生表中的数据:
```
SELECT * FROM student;
```
可以看到,该学生的平均成绩已经被更新了。
阅读全文