SQL定义一个存储过程 get course student proc,实现根据课程号,统计该门课程被选修的情况,包括系名,班级名,学号和姓名, 并且查询结果先按院系排序,院系相同的按班级排序,班级相同按学号排序。
时间: 2023-09-25 22:08:10 浏览: 78
可以使用如下的 SQL 语句定义一个存储过程 get_course_student_proc:
```
CREATE PROCEDURE get_course_student_proc (IN course_id INT)
BEGIN
SELECT d.department_name, c.class_name, s.student_id, s.student_name
FROM department d, class c, student s, course_selection cs
WHERE d.department_id = c.department_id
AND c.class_id = s.class_id
AND s.student_id = cs.student_id
AND cs.course_id = course_id
ORDER BY d.department_name, c.class_name, s.student_id;
END
```
这个存储过程接受一个课程号作为参数,然后查询学生选修了这门课程的情况,并按照要求排序。具体实现中,使用了 department、class、student 和 course_selection 四个表,其中 department 表存储院系信息,class 表存储班级信息,student 表存储学生信息,course_selection 表存储选课信息。最后使用 ORDER BY 子句对查询结果进行排序,先按院系排序,院系相同的按班级排序,班级相同按学号排序。
阅读全文