根据自己设计的关系模式满足下列功能需求:-|||-1)查询与张三在同一个宿舍的学生信息;-|||-2)查询张三的所有的课程成绩;-|||-3)定义触发器每个学生如果考试成绩有5门课程不合格,则会给出学
时间: 2023-11-11 12:04:10 浏览: 93
根据自己设计的关系模式满足下列功能需求:
-1)查询与张三在同一个宿舍的学生信息:
可以设计一个包含学生信息和宿舍信息的关系模式,其中学生信息包括学号、姓名、性别、年龄等属性,宿舍信息包括宿舍号、宿舍楼、床位数等属性。两个关系模式可以通过学生所在宿舍号建立联系,因此可以使用如下SQL语句查询与张三在同一个宿舍的学生信息:
```
SELECT * FROM 学生信息表 WHERE 宿舍号 = (SELECT 宿舍号 FROM 学生信息表 WHERE 姓名 = '张三')
```
-2)查询张三的所有的课程成绩:
可以设计一个包含学生信息、课程信息和成绩信息的关系模式,其中学生信息和课程信息的属性同上,成绩信息包括学号、课程号、成绩等属性。三个关系模式可以通过学生的学号建立联系,因此可以使用如下SQL语句查询张三的所有课程成绩:
```
SELECT * FROM 成绩信息表 WHERE 学号 = (SELECT 学号 FROM 学生信息表 WHERE 姓名 = '张三')
```
-3)定义触发器每个学生如果考试成绩有5门课程不合格,则会给出学生警告:
可以在成绩信息表上定义一个触发器,当插入或更新一条成绩信息时,检查该学生的不及格课程数是否达到5门,如果是,则在警告信息表中插入一条警告信息。触发器的SQL语句如下:
```
CREATE TRIGGER 检查成绩
AFTER INSERT OR UPDATE ON 成绩信息表
FOR EACH ROW
BEGIN
DECLARE cnt INT;
SELECT COUNT(*) INTO cnt FROM 成绩信息表 WHERE 学号 = NEW.学号 AND 成绩 < 60;
IF cnt >= 5 THEN
INSERT INTO 警告信息表 (学号, 警告内容) VALUES (NEW.学号, '不及格课程数达到5门');
END IF;
END;
```
阅读全文