创建存储过程stu_sc,查询出姓名为“李丽”的选课信息(学生学号,学生姓名,课程编号,课程名,成绩等信息),并执行存储过程
时间: 2023-11-16 10:26:55 浏览: 115
好的,以下是创建存储过程的 SQL 代码:
```
CREATE PROCEDURE stu_sc
AS
BEGIN
SELECT s.stu_id, s.stu_name, c.course_id, c.course_name, sc.score
FROM student s
JOIN score sc ON s.stu_id = sc.stu_id
JOIN course c ON c.course_id = sc.course_id
WHERE s.stu_name = '李丽';
END
```
请注意,这里的表名和字段名仅供参考,具体根据你的实际情况进行修改。
执行该存储过程的 SQL 代码如下:
```
EXECUTE stu_sc;
```
执行后,即可查询出姓名为“李丽”的选课信息。
相关问题
用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号学生的选课门数。
创建存储过程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
```
创建一个存储过程 stu_grade,查询学号为 0001的学生的姓名、课程名称、分数。
创建一个名为 `stu_grade` 的存储过程,用于查询学号为 "0001" 的学生的姓名、课程名称和分数,可以按照下面的SQL语法编写:
```sql
DELIMITER //
CREATE PROCEDURE stu_grade()
BEGIN
SELECT s.name AS student_name, c.course_name, sc.score
FROM students s
JOIN student_courses sc ON s.student_id = sc.student_id
JOIN courses c ON sc.course_id = c.course_id
WHERE s.student_id = '0001';
END //
DELIMITER ;
```
这个存储过程首先从 `students` 表中通过学生ID关联到 `student_courses` 表,再从 `student_courses` 表联接到 `courses` 表,最后筛选出学号为 "0001" 的学生的相关信息。
要调用此存储过程,你可以直接运行如下命令:
```sql
CALL stu_grade();
```
阅读全文