mysql创建储存过程 输入学生名子_创建一个存储过程,给定某学生学号,要求查询出该学生的姓名,所选课程名和成绩.(SQL SERVER)...
时间: 2024-03-25 08:38:01 浏览: 16
抱歉,您提到的是MySQL创建存储过程,但是您的要求是在SQL Server中创建存储过程。以下是在SQL Server中创建存储过程的示例代码,用于查询给定学生的姓名、所选课程名和成绩:
```
CREATE PROCEDURE GetStudentGrades
@StudentID INT
AS
BEGIN
SELECT s.StudentName, c.CourseName, g.Grade
FROM Students s
JOIN Grades g ON s.StudentID = g.StudentID
JOIN Courses c ON g.CourseID = c.CourseID
WHERE s.StudentID = @StudentID
END
```
在上面的代码中,我们创建了一个名为“GetStudentGrades”的存储过程,接受一个名为“StudentID”的整数参数。该存储过程执行了一个JOIN查询,从Students、Grades和Courses表中获取所需的数据,并使用WHERE子句过滤出给定学生的成绩。您可以根据自己的实际情况更改表和列名。
相关问题
创建存储过程st_pro,通过参数给定姓名,查询该学生的学号、姓名、所学课程名称和成绩
以下是一个基于MySQL的存储过程实现:
```mysql
DELIMITER $$
CREATE PROCEDURE st_pro(
IN student_name VARCHAR(50)
)
BEGIN
SELECT s.student_id, s.student_name, c.course_name, sc.score
FROM students s
JOIN scores sc ON s.student_id = sc.student_id
JOIN courses c ON sc.course_id = c.course_id
WHERE s.student_name = student_name;
END $$
DELIMITER ;
```
该存储过程接收一个参数 `student_name`,根据该参数查询学生信息以及其所学课程成绩信息,并返回结果集。需要注意的是,该存储过程基于三个表 `students`、`scores` 和 `courses`,其中 `students` 表包含学生信息,`scores` 表包含学生成绩信息,`courses` 表包含课程信息。在查询中,需要通过 `JOIN` 关键字表达三个表之间的关联关系。
用mysql写出1、创建一个名称为proc_stu1的存储过程,完成如下功能:在student表中查询男生的姓名、学号、班级编号这几个字段的内容; 2、创建一个名称为proc_stu2的存储过程,完成如下功能:给定学生学号,在student表中查询学生的姓名、班级编号。 3、创建一个名称为proc_stu3的存储过程,完成如下功能:给定学生学号,返回该学生的班级编号。 4、创建一个名称为proc_score的存储过程,完成如下功能:给定课程号,统计选修该课程的学生人数,并将统计结果保存在输出变量中。
1、创建proc_stu1存储过程:
```
CREATE PROCEDURE proc_stu1()
BEGIN
SELECT name, stu_id, class_id FROM student WHERE gender='男';
END;
```
2、创建proc_stu2存储过程:
```
CREATE PROCEDURE proc_stu2(IN stu_id INT)
BEGIN
SELECT name, class_id FROM student WHERE stu_id=stu_id;
END;
```
3、创建proc_stu3存储过程:
```
CREATE PROCEDURE proc_stu3(IN stu_id INT, OUT class_id INT)
BEGIN
SELECT class_id INTO class_id FROM student WHERE stu_id=stu_id;
END;
```
4、创建proc_score存储过程:
```
CREATE PROCEDURE proc_score(IN course_id INT, OUT student_count INT)
BEGIN
SELECT COUNT(*) INTO student_count FROM score WHERE course_id=course_id;
END;
```