sql创建存储过程P_kk,输入班级名查询该班在2012年第2学期的开课情况(输出课程名,任课教师名) schedule, teacher, course, class name
时间: 2023-12-10 14:41:02 浏览: 81
好的,下面是创建存储过程P_kk的SQL语句:
```
CREATE PROCEDURE P_kk (IN class_name VARCHAR(20))
BEGIN
SELECT c.course_name, t.teacher_name
FROM schedule s
INNER JOIN course c ON s.course_id = c.course_id
INNER JOIN teacher t ON s.teacher_id = t.teacher_id
WHERE s.class_name = class_name
AND s.year = 2012
AND s.semester = 2;
END
```
解释一下上面的SQL语句:
- `CREATE PROCEDURE P_kk (IN class_name VARCHAR(20))`:创建了一个名为P_kk的存储过程,它有一个输入参数class_name,参数类型为VARCHAR(20)。
- `SELECT c.course_name, t.teacher_name`:查询结果包含课程名和任课教师名。
- `FROM schedule s`:从名为schedule的表中查询数据,表别名为s。
- `INNER JOIN course c ON s.course_id = c.course_id`:将schedule表与course表进行连接,连接条件为course_id相等。
- `INNER JOIN teacher t ON s.teacher_id = t.teacher_id`:将schedule表与teacher表进行连接,连接条件为teacher_id相等。
- `WHERE s.class_name = class_name AND s.year = 2012 AND s.semester = 2`:添加查询条件,班级名等于输入参数class_name,年份为2012,学期为2。
调用存储过程的方法为:
```
CALL P_kk('班级名');
```
其中,'班级名'为实际要查询的班级名。
阅读全文