pl/sql在SC表中求某班学生某门课程的最高分和最低分的学生信息,输出信息包括学号、姓名、课程名称。
时间: 2023-05-28 10:08:03 浏览: 112
学科、姓名、分数。 分别计算每门学科分数最高的前三名,并显示名次。写入MySQL中。
假设SC表包括以下字段:
- 学号(sid)
- 课程号(cid)
- 分数(score)
同时,假设有以下表:
- 学生表(student),包括学号(sid)和姓名(name)
- 课程表(course),包括课程号(cid)和课程名称(cname)
则可以使用以下PL/SQL代码实现:
```
DECLARE
max_score NUMBER;
min_score NUMBER;
max_sid VARCHAR2(20);
min_sid VARCHAR2(20);
max_name VARCHAR2(20);
min_name VARCHAR2(20);
course_name VARCHAR2(20);
BEGIN
SELECT cname INTO course_name FROM course WHERE cid = 'your_course_id';
SELECT MAX(score), MIN(score) INTO max_score, min_score FROM SC WHERE cid = 'your_course_id';
SELECT sid, name INTO max_sid, max_name FROM SC JOIN student ON SC.sid = student.sid WHERE cid = 'your_course_id' AND score = max_score;
SELECT sid, name INTO min_sid, min_name FROM SC JOIN student ON SC.sid = student.sid WHERE cid = 'your_course_id' AND score = min_score;
DBMS_OUTPUT.PUT_LINE('课程名称:' || course_name);
DBMS_OUTPUT.PUT_LINE('最高分学生信息:学号=' || max_sid || ',姓名=' || max_name);
DBMS_OUTPUT.PUT_LINE('最低分学生信息:学号=' || min_sid || ',姓名=' || min_name);
END;
```
在代码中,需要将 `your_course_id` 替换为想要查询的课程号。运行代码后,会在控制台输出以课程名称、最高分学生信息和最低分学生信息组成的字符串。
阅读全文