为选课表Reports增加一个属性列Level,并为该表创建一触发器,将成绩Grade按下列对应关系由分数转换成等级,并保存到Level列中: 小于60分:不及格 60~70分:及格 70~80分:中 80~90分:良 90分以上:优
时间: 2024-03-16 20:44:10 浏览: 22
好的,针对你的问题,我可以为你提供以下 SQL 语句:
1. 为选课表Reports增加一个属性列Level:
```
ALTER TABLE Reports ADD COLUMN Level VARCHAR(10);
```
2. 创建一个触发器,将成绩Grade按照对应关系由分数转换成等级,并保存到Level列中:
```
CREATE TRIGGER trg_Reports AFTER INSERT ON Reports
FOR EACH ROW
BEGIN
IF NEW.Grade < 60 THEN
SET NEW.Level = '不及格';
ELSEIF NEW.Grade BETWEEN 60 AND 70 THEN
SET NEW.Level = '及格';
ELSEIF NEW.Grade BETWEEN 70 AND 80 THEN
SET NEW.Level = '中';
ELSEIF NEW.Grade BETWEEN 80 AND 90 THEN
SET NEW.Level = '良';
ELSEIF NEW.Grade >= 90 THEN
SET NEW.Level = '优';
END IF;
END;
```
这个触发器会在每次往Reports表中插入新数据时触发,根据成绩Grade的值对应地将等级保存到Level列中。注意,这个触发器只会在插入数据时触发,如果你想要在更新数据时也触发这个触发器,需要在CREATE TRIGGER语句中添加AFTER UPDATE ON Reports这行代码。