MySQL创建一个简单存储过程列出已被学生修读的课程号,课程 名称和学分。
时间: 2024-03-20 16:42:03 浏览: 122
好的,以下是创建一个简单存储过程来实现列出已被学生修读的课程号,课程名称和学分的SQL语句:
```sql
CREATE PROCEDURE list_courses(IN student_id INT)
BEGIN
SELECT course.id, course.name, course.credit
FROM course, sc
WHERE sc.course_id = course.id AND sc.student_id = student_id;
END;
```
该存储过程名为`list_courses`,接受一个名为`student_id`的参数。该存储过程使用了一个`SELECT`语句,通过连接`course`表和`sc`表,查询出已被`student_id`指定的学生修读的课程号、课程名称和学分。你可以根据需要修改存储过程的名称和参数名。
该存储过程的调用方式如下:
```sql
CALL list_courses(学生ID);
```
其中,`学生ID`为已经存在的学生ID。
希望我的回答对你有所帮助。如果你还有其他问题,请继续提问。
相关问题
mysql创建储存过程 输入学生名子_创建一个存储过程,给定某学生学号,要求查询出该学生的姓名,所选课程名和成绩.(SQL SERVER)...
在 MySQL 中创建储存过程可以使用 `CREATE PROCEDURE` 语句,具体实现如下:
```mysql
CREATE PROCEDURE get_student_info(IN student_id INT)
BEGIN
SELECT s.name, c.course_name, sc.grade
FROM students s
JOIN student_course sc ON s.id = sc.student_id
JOIN courses c ON sc.course_id = c.id
WHERE s.id = student_id;
END
```
上面的储存过程名为 `get_student_info`,有一个输入参数 `student_id` 表示学生的编号。储存过程中使用了 JOIN 操作连接了学生表、选课表和课程表,查询出了学生的姓名、所选课程名和成绩。最后通过 WHERE 子句过滤出了指定学生的信息。
MYSQL创建一个存储过程,有两个输入参数,xh和kch,如果成绩大于60分时,将该课程的学分累加计入该生的总学分,否则,总学分不变。
以下是MYSQL创建一个存储过程的代码,实现了有两个输入参数xh和kch,如果成绩大于60分时,将该课程的学分累加计入该生的总学分,否则,总学分不变的功能:
```sql
CREATE PROCEDURE add_credit(xh VARCHAR(10), kch VARCHAR(10))
BEGIN
DECLARE cj INT;
DECLARE xf INT;
DECLARE total_xf INT;
SELECT 成绩 INTO cj FROM XS_KC WHERE 学号=xh AND 课程号=kch;
SELECT 学分 INTO xf FROM KC WHERE 课程号=kch;
SELECT 总学分 INTO total_xf FROM XS WHERE 学号=xh;
IF cj > 60 THEN
SET total_xf = total_xf + xf;
END IF;
UPDATE XS SET 总学分 = total_xf WHERE 学号=xh;
END;
```
阅读全文