(2)创建(带参数)存储过程 题目要求:查询某位学生的指定课程的成绩和学分。 SQL: CREATE PROCEDURE query_student_grade_and_credit @Sno CHAR(10), @Cname VARCHAR(20) AS BEGIN SELECT Ccredit,Grade FROM T_Course,T_SC WHERE T_SC.Sno = @Sno AND T_Course.Cname=@Cname END EXECUTE query_student_grade_and_credit '2002151228' 请帮我修改正确
时间: 2024-02-13 15:01:12 浏览: 26
您的 SQL 语句有一些问题,需要做如下修改:
```sql
CREATE PROCEDURE query_student_grade_and_credit
@Sno CHAR(10),
@Cname VARCHAR(20)
AS
BEGIN
SELECT T_Course.Ccredit, T_SC.Grade
FROM T_SC
INNER JOIN T_Course ON T_SC.Cno = T_Course.Cno
WHERE T_SC.Sno = @Sno AND T_Course.Cname = @Cname
END
```
修改说明:
1. 存储过程名称后面需要加上参数列表,即 `query_student_grade_and_credit @Sno CHAR(10), @Cname VARCHAR(20)`。
2. SELECT 语句中需要指定查询的表以及列,需要使用表的别名来进行区分,同时需要将 T_SC 表和 T_Course 表进行连接。
3. 在 WHERE 语句中需要使用 T_SC 表中的 Cno 列来与 T_Course 表中的 Cno 列进行匹配。
接下来,您可以执行 `EXEC query_student_grade_and_credit '2002151228', '某门课程名称'` 来查询某位学生的指定课程的成绩和学分。
相关问题
用SQL Server语句,创建一个带输入参数的存储过程pro1,要求可以根据输入的学号查询学生的姓名、课程号、课程名、学分和成绩
好的,下面是创建存储过程pro1的SQL Server语句:
```
CREATE PROCEDURE pro1
@stu_id VARCHAR(10)
AS
BEGIN
SELECT s.name, c.course_id, c.course_name, c.credit, g.score
FROM student s
JOIN grade g ON s.stu_id = g.stu_id
JOIN course c ON g.course_id = c.course_id
WHERE s.stu_id = @stu_id
END
```
这个存储过程接收一个输入参数@stu_id,根据输入的学号查询学生的姓名、课程号、课程名、学分和成绩。在存储过程中,我们使用了JOIN语句将三个表(student、grade、course)连接起来,然后使用WHERE子句筛选出符合条件的记录。最后,我们通过SELECT语句返回查询结果。
使用sql语句如何在teaching数据库中,创建一个存储过程,查询指定学院学分未达到165的学生姓名和学号。
好的,根据你的要求,我给出如下的 SQL 语句,用于在 teaching 数据库中创建一个存储过程,查询指定学院学分未达到 165 的学生姓名和学号:
```
CREATE PROCEDURE GetStudentsByCollege
@collegeName NVARCHAR(50)
AS
BEGIN
SELECT name, id
FROM students
WHERE college = @collegeName AND credits < 165;
END
```
上述 SQL 语句中,我们使用 `CREATE PROCEDURE` 语句创建了一个名为 `GetStudentsByCollege` 的存储过程,该存储过程接受一个名为 `@collegeName` 的参数,用于指定要查询的学院名称。在存储过程的主体中,我们使用 `SELECT` 语句查询了符合条件的学生姓名和学号,并通过 `WHERE` 子句指定了查询条件。
你可以将上述 SQL 语句复制到 SQL Server Management Studio 或其他 SQL 编辑器中执行,以创建该存储过程。创建成功后,你可以通过以下语句来调用该存储过程并传递参数:
```
EXECUTE GetStudentsByCollege '计算机学院';
```
这样就可以查询到计算机学院中学分未达到 165 的学生姓名和学号了。