在gradem数据库中创建存储过程proc_1,要求实现如下功能:存在不及格情况的学生选课情况列表,其中包括学号、姓名、性别、课程号、课程名、成绩、系别等。调用proc_1存储过程,观察执行结果。
时间: 2023-07-10 19:05:44 浏览: 124
下面是创建存储过程proc_1的示例代码:
```
CREATE PROCEDURE proc_1
AS
BEGIN
SELECT Student.ID, Student.Name, Student.Gender, Course.CourseID, Course.CourseName, Grade.Score, Department.DepartmentName
FROM Student
INNER JOIN Grade ON Student.ID = Grade.StudentID
INNER JOIN Course ON Grade.CourseID = Course.CourseID
INNER JOIN Department ON Student.DepartmentID = Department.DepartmentID
WHERE Grade.Score < 60
END
```
该存储过程通过多个表的联接查询,返回存在不及格情况的学生选课情况列表,包括学号、姓名、性别、课程号、课程名、成绩、系别等信息。在执行该存储过程时,只需要调用proc_1即可。
注意:在执行存储过程前,需要先创建相关的表和数据。如果已经有了相关的数据,可以直接调用存储过程。
相关问题
② 在gradem数据库中创建存储过程proc_2,要求实现如下功能:查询存在不及格情况的学生选课情况列表,其中包括学号、姓名、性别、课程号、课程名、成绩、系别等。调用proc_2存储过程,观察执行结果。
在MySQL或者类似支持存储过程的数据库系统Gradem中,你可以使用以下步骤创建一个名为`proc_2`的存储过程,用于查询有不及格成绩的学生选课情况:
```sql
DELIMITER //
CREATE PROCEDURE proc_2()
BEGIN
SELECT s.sno AS 学号, s.name AS 姓名, s.gender AS 性别, c.course_id AS 课程号, c.course_name AS 课程名, c.score AS 成绩, d.department AS 系别
FROM students s
JOIN enrollments e ON s.sno = e.student_sno
JOIN courses c ON e.course_id = c.course_id
JOIN departments d ON c.department_id = d.department_id
WHERE c.score < 60; -- 及格线通常设为60分
END //
DELIMITER ;
-- 调用存储过程
CALL proc_2();
```
这个存储过程会返回所有成绩低于及格分数线(例如60分)的学生的信息,包括他们的学号、姓名、性别、课程号、课程名称以及他们所选课程的系别。
在db_school数据库中创建存储过程proc_2,要求实现如下功能:存在不及格情况的学生选课情况列表,其中包括学号、姓名、性别、课程号、课程名、成绩、系别等。调用proc_2存储过程,观察执行结果。
好的,以下是创建存储过程proc_2的SQL语句:
```
CREATE PROCEDURE proc_2
AS
BEGIN
SELECT s.sid, s.sname, s.ssex, c.cid, c.cname, sc.score, d.dname
FROM student s, course c, sc, department d
WHERE s.sid = sc.sid AND c.cid = sc.cid AND s.sdept = d.did AND sc.score < 60
ORDER BY s.sid, c.cid
END
```
这个存储过程会查询db_school数据库中存在不及格情况的学生选课情况列表,包括学号、姓名、性别、课程号、课程名、成绩、系别等信息。调用存储过程之后,会返回查询结果。
你可以使用以下代码调用存储过程:
```
EXEC proc_2
```
执行结果会显示出存在不及格情况的学生选课情况列表。
阅读全文
相关推荐















