编写一个名为“sp_avg”存储过程,它能根据学号统计该学生所选课程的平均成绩,写出创建存储过程及执行存储过程的T-SQL语句。
时间: 2023-07-04 08:04:11 浏览: 46
创建存储过程的T-SQL语句如下:
```
CREATE PROCEDURE sp_avg
@student_id INT
AS
BEGIN
SELECT AVG(grade) AS avg_grade
FROM score
WHERE student_id = @student_id
END
```
执行存储过程的T-SQL语句如下:
```
EXEC sp_avg @student_id = 12345
```
其中,@student_id是输入参数,代表学生的学号。存储过程会返回该学生所选课程的平均成绩。注意,在执行存储过程之前,需要先在数据库中创建score表,并向其中插入学生成绩数据。
相关问题
编写一个名为“sp_zong”的存储过程,它能根据学生姓名统计该学生的总成绩并能将成绩返回给调用者,写出创建存储过程及执行存储过程的T-SQL语句
好的,以下是创建存储过程及执行存储过程的T-SQL语句:
创建存储过程:
```
CREATE PROCEDURE sp_zong
@name NVARCHAR(50)
AS
BEGIN
SELECT SUM(score) AS total_score
FROM student
WHERE name = @name
END
```
执行存储过程:
```
EXEC sp_zong '小明'
```
其中,`sp_zong`是存储过程的名称,`@name`是输入参数,`SUM(score)`是用于计算总成绩的聚合函数,`FROM student`是指定需要查询的表名,`WHERE name = @name`是根据输入参数进行筛选。执行存储过程时,需要传入一个学生姓名,存储过程会返回该学生的总成绩。
(3) 编写一个名为“sp_update”存储过程,它能根据课程号将该课程的考核成绩提高5%,写出创建存储过程及执行存储过程的T-SQL语句。
### 回答1:
创建存储过程的T-SQL语句如下:
```sql
CREATE PROCEDURE sp_update
@course_id int
AS
BEGIN
UPDATE score
SET score = score * 1.05
WHERE course_id = @course_id
END
```
执行存储过程的T-SQL语句如下:
```sql
EXEC sp_update @course_id = 1001;
```
其中,@course_id为输入参数,表示要更新考核成绩的课程号。存储过程会将该课程的考核成绩提高5%。执行存储过程时需要传入相应的参数值。
### 回答2:
创建存储过程:
```
CREATE PROCEDURE sp_update
@课程号 INT
AS
BEGIN
UPDATE 课程表
SET 考核成绩 = 考核成绩 * 1.05
WHERE 课程号 = @课程号
END
```
执行存储过程的T-SQL语句:
```
EXEC sp_update @课程号 = 12345;
```
以上代码创建了一个名为`sp_update`的存储过程,它接受一个`@课程号`参数,根据传入的课程号在`课程表`表中找到对应的课程,并将该课程的考核成绩提高5%。执行存储过程的T-SQL语句中,通过`EXEC`命令调用`sp_update`存储过程,并传入课程号作为参数。
### 回答3:
创建存储过程的T-SQL语句如下:
```sql
CREATE PROCEDURE sp_update
@course_id INT
AS
BEGIN
UPDATE courses
SET exam_score = exam_score * 1.05 -- 将考核成绩提高5%
WHERE course_id = @course_id;
END;
```
执行存储过程的T-SQL语句如下:
```sql
EXEC sp_update @course_id = 12345; -- 传入课程号作为参数来执行存储过程
```
其中,假设要将课程号为12345的课程的考核成绩提高5%。你可以根据实际情况将`course_id`和所需的课程号进行修改。