用sql语句实现以下代码:输入以下代码,创建存储过程stu_info,执行时通过输入姓名,可以查询该姓名的学生的各科成绩。 2. 使用TeachSystem数据库中的student表、course表、SC表。 (1)创建一个存储过程stu_grade,查询学号为S01的学生的姓名、课程名称、成绩。 (2)调用存储过程stu_grade。 3. 使用TeachSystem数据库中的student表、course表、SC表。 (1)创建存储过程stu_name,当任意输入一个学生的姓名时,查看其课程的最高分、最低分、平均分。 (2)调用存储过程stu_name。 (3)删除存储过程stu_name。 4. 使用TeachSystem数据库中的SC表。 (1)创建一个存储过程stu_g_r,当输入一个学生的学号时,通过返回输出参数获取该学生选修课程的门数。 (2)执行存储过程stu_g_r,输入学号S02。 (3)显示S02号学生的选课门数。
时间: 2024-03-01 21:52:37 浏览: 139
只有两个字段用一个sql语句查询出某个学生的姓名、成绩以及在表中的排名
创建存储过程stu_info:
```
CREATE PROCEDURE stu_info
@name VARCHAR(50)
AS
BEGIN
SELECT s.name, c.course_name, sc.grade
FROM student s
JOIN SC sc ON s.s_id = sc.s_id
JOIN course c ON c.c_id = sc.c_id
WHERE s.name = @name
END
```
创建存储过程stu_grade:
```
CREATE PROCEDURE stu_grade
AS
BEGIN
SELECT s.name, c.course_name, sc.grade
FROM student s
JOIN SC sc ON s.s_id = sc.s_id
JOIN course c ON c.c_id = sc.c_id
WHERE s.s_id = 'S01'
END
```
调用存储过程stu_grade:
```
EXECUTE stu_grade
```
创建存储过程stu_name:
```
CREATE PROCEDURE stu_name
@name VARCHAR(50)
AS
BEGIN
SELECT MAX(sc.grade) AS max_grade, MIN(sc.grade) AS min_grade, AVG(sc.grade) AS avg_grade
FROM student s
JOIN SC sc ON s.s_id = sc.s_id
WHERE s.name = @name
END
```
调用存储过程stu_name:
```
EXECUTE stu_name '张三'
```
删除存储过程stu_name:
```
DROP PROCEDURE stu_name
```
创建存储过程stu_g_r:
```
CREATE PROCEDURE stu_g_r
@s_id VARCHAR(50),
@count INT OUTPUT
AS
BEGIN
SELECT @count = COUNT(*)
FROM SC
WHERE s_id = @s_id
END
```
执行存储过程stu_g_r,输入学号S02:
```
DECLARE @count INT
EXECUTE stu_g_r 'S02', @count OUTPUT
SELECT @count
```
阅读全文