创建一个名为“proc_1”的存储过程,输入某同学的学号显示该学生的姓名、所在专业及其所有选修课程的成绩总分,若输入的学号不存在,则显示“输入有误或无此学号”。然后调用该存储过程。
时间: 2024-05-16 17:15:16 浏览: 26
创建存储过程的 SQL 代码如下:
```
CREATE PROCEDURE proc_1 (@stu_id INT)
AS
BEGIN
IF EXISTS (SELECT * FROM students WHERE id = @stu_id)
BEGIN
SELECT name, major, SUM(score) AS total_score
FROM students
INNER JOIN scores ON students.id = scores.stu_id
WHERE students.id = @stu_id
GROUP BY name, major
END
ELSE
BEGIN
PRINT '输入有误或无此学号'
END
END
```
该存储过程接受一个整数类型的参数 `@stu_id`,用来指定要查询的学生的学号。如果该学号存在,则查询该学生的姓名、所在专业及其选修课程的成绩总分;否则,打印出提示信息。
调用存储过程的 SQL 代码如下:
```
EXEC proc_1 123456
```
其中 `123456` 是要查询的学生的学号。根据具体情况进行替换。
相关问题
创建一个名为stu_proc1的存储过程,查询某系、某姓名的学生的学号、姓名、年龄,选修课程名和成绩。系名和姓名在调用该存储过程时输入。
可以使用如下的 SQL 语句创建一个名为stu_proc1的存储过程:
```
CREATE PROCEDURE stu_proc1
@dept_name VARCHAR(20),
@stu_name VARCHAR(20)
AS
BEGIN
SELECT s.stu_id, s.stu_name, s.stu_age, c.course_name, sc.score
FROM student s
JOIN score sc ON s.stu_id = sc.stu_id
JOIN course c ON sc.course_id = c.course_id
WHERE s.dept_name = @dept_name AND s.stu_name = @stu_name
END
```
该存储过程接受两个参数:@dept_name和@stu_name,分别表示系名和姓名。在存储过程内部,使用JOIN语句联结了student、score和course这三个表,然后根据输入的系名和姓名筛选出符合条件的记录,并返回学号、姓名、年龄、选修课程名和成绩这些字段的值。
2.创建名为proc_exp的存储过程,要求输入某学生的姓名时从SC表中查询该学生的平均成绩。
好的,以下是创建名为`proc_exp`的存储过程的 SQL 代码,可以实现输入某学生的姓名时从SC表中查询该学生的平均成绩:
```
CREATE PROCEDURE proc_exp
@name nvarchar(50)
AS
BEGIN
SELECT AVG(score) as avg_score
FROM SC
WHERE sno = (SELECT sno FROM S WHERE sname = @name)
END
```
这个存储过程接收一个名为`@name`的参数,表示要查询的学生的姓名。存储过程内部使用了 SQL 的聚合函数`AVG`来计算该学生的平均成绩。具体地,它首先使用子查询`SELECT sno FROM S WHERE sname = @name`来获取该学生的学号`sno`,再在`SC`表中筛选出该学生的所有成绩,最后使用`AVG`函数计算平均值并返回。
注意,这个存储过程假定`S`表中的每个学生都有唯一的姓名,如果存在同名学生,则只会返回其中一个学生的平均成绩。同时,如果输入的姓名在`S`表中不存在,则会返回空结果。
相关推荐
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![asm](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)