编写一个存储过程p1,输入的课程名和姓名,查询选该课程学生的成绩;
时间: 2024-12-22 12:21:32 浏览: 12
在编写一个存储过程 `p1` 时,通常会在关系型数据库管理系统中创建,比如MySQL、SQL Server等。这个过程用于封装特定的查询操作,使其能够接受外部参数并返回结果。以下是使用MySQL的一个示例:
```sql
DELIMITER //
CREATE PROCEDURE p1(IN course_name VARCHAR(50), IN student_name VARCHAR(50))
BEGIN
SELECT score
FROM students
WHERE course = course_name AND name = student_name;
END //
DELIMITER ;
```
在这个例子中,`p1` 存储过程接收两个参数:`course_name` 和 `student_name`。它从 `students` 表中选择出课程名称匹配 `course_name`,并且学生名字匹配 `student_name` 的记录,并返回对应的 `score`。
要调用此存储过程,你可以像下面这样:
```sql
CALL p1('Math', 'John Doe');
```
相关问题
sql编写一个存储过程p1,输入的课程名和姓名,查询选该课程学生的成绩
在SQL中,你可以创建一个名为`p1`的存储过程,用于接收课程名称(比如`course_name`)和学生姓名(如`student_name`),然后查询对应课程的成绩。这里是一个基本的例子:
```sql
CREATE PROCEDURE p1 (@course_name VARCHAR(50), @student_name VARCHAR(50))
AS
BEGIN
SELECT score
FROM students
INNER JOIN enrollments ON students.student_id = enrollments.student_id
INNER JOIN courses ON enrollments.course_id = courses.course_id
WHERE courses.name = @course_name AND students.name = @student_name;
END;
```
这个存储过程首先通过INNER JOIN将学生表(`students`)、选课表(`enrollments`)以及课程表(`courses`)连接起来,然后通过WHERE子句筛选出课程名等于`@course_name`并且学生名等于`@student_name`的所有记录,最后返回对应的学生成绩(score)。
阅读全文