创建一个存储过程Pro_com,用于查询指定的学号是否存在选修课的情况,若存在,则输出该生的学号、姓名及选课门数信息并返回1,否则返回0
时间: 2024-03-15 08:45:48 浏览: 45
用文件存储10个学生的姓名、学号、手机号、地址,可通过姓名或者学号查找
5星 · 资源好评率100%
好的,以下是存储过程Pro_com的代码:
```
CREATE PROCEDURE Pro_com
@student_id INT
AS
BEGIN
IF EXISTS (SELECT * FROM course WHERE student_id = @student_id)
BEGIN
SELECT s.student_id, s.student_name, COUNT(c.course_id) AS course_num
FROM student s
INNER JOIN course c ON s.student_id = c.student_id
WHERE s.student_id = @student_id
GROUP BY s.student_id, s.student_name
RETURN 1
END
ELSE
BEGIN
RETURN 0
END
END
```
该存储过程接收一个参数 @student_id,用于指定要查询的学生的学号。若该学生已经选修了课程,则查询该学生的学号、姓名以及选课门数信息,并返回1;否则返回0。
在存储过程中,我们首先使用 EXISTS 子句检查该学生是否已经选修了课程。如果存在选课记录,则使用 INNER JOIN 子句将 student 表和 course 表连接起来,并使用 GROUP BY 子句对学号和姓名进行分组,以便统计选课门数。最后,使用 RETURN 语句返回1表示查询成功。
如果该学生没有选修课程,则直接返回0表示查询失败。
阅读全文