编写PL/SQL程序 定义变量“v_sname”,并把“刘晨”赋值给“v_sname”,根据变量“v_sname”查询并输出刘晨的选修的课程的课程及考试成绩。
时间: 2024-05-19 21:12:37 浏览: 66
DECLARE
v_sname VARCHAR2(20) := '刘晨';
v_course VARCHAR2(20);
v_grade NUMBER(3);
BEGIN
SELECT course, grade INTO v_course, v_grade
FROM student_course
WHERE sname = v_sname;
DBMS_OUTPUT.PUT_LINE(v_sname || '选修了' || v_course || ',考试成绩为' || v_grade);
END;
/
相关问题
delimiter // create procedure count_1(in s_sname varchar(30),out count_sname char) begin select count(sname) as 总人数 into count_sname from student where sname=s_sname; End// delimiter; call count_1(@count_sname); select @count_sname as 总人数; MySQL错在哪里
在调用存储过程时,应该将存储过程的参数传递给它,即应该像下面这样调用存储过程:
```
delimiter //
create procedure count_1(in s_sname varchar(30),out count_sname char)
begin
select count(sname) as 总人数 into count_sname from student where sname=s_sname;
End//
delimiter;
call count_1('张三', @count_sname);
select @count_sname as 总人数;
```
请注意,`count_1` 存储过程有一个输入参数 `s_sname` 和一个输出参数 `count_sname`。在调用存储过程时,应该将 `s_sname` 参数传递给它。在存储过程内部,使用 `into` 关键字将 `count(sname)` 的结果赋值给 `count_sname`。最后,在查询中,可以使用 `@count_sname` 查看输出参数的值。
从视图V_ssc上查询平均成绩在90分以上的Sname,cname,grade
### 回答1:
假设你的数据库中有一个名为V_ssc的视图,包含Sname、Cname、Grade等列,可以使用以下SQL查询语句来获取平均成绩在90分以上的Sname、Cname和Grade:
```sql
SELECT Sname, Cname, Grade
FROM V_ssc
GROUP BY Sname, Cname, Grade
HAVING AVG(Grade) > 90;
```
这个查询语句会按照Sname、Cname和Grade进行分组,并计算每组的平均成绩。然后,使用HAVING子句来筛选出平均成绩大于90分的分组,并返回对应的Sname、Cname和Grade。
### 回答2:
可以通过以下SQL语句从视图V_ssc上查询平均成绩在90分以上的Sname(学生姓名)、cname(课程名称)和grade(成绩):
```
SELECT Sname, cname, grade
FROM V_ssc
WHERE grade > 90;
```
以上SQL语句中,先选取视图V_ssc中的Sname、cname和grade列,然后使用WHERE子句筛选出成绩大于90分的记录,最后返回这些记录的Sname、cname和grade值。
注意:以上回答是基于对问题的理解,具体的查询语句可能根据实际情况有所不同。请根据数据库的结构和需求进行修改和适应。
### 回答3:
要根据视图V_ssc上查询平均成绩在90分以上的学生姓名(Sname),课程名称(cname)和成绩(grade)。首先,我们需要了解V_ssc是如何定义的。假设V_ssc是学生选课表和成绩表的联接视图,包含以下列:学生学号(Sid)、学生姓名(Sname)、课程编号(Cid)、课程名称(cname)和成绩(grade)。
为了查询平均成绩在90分以上的学生姓名、课程名称和成绩,我们可以使用以下SQL语句:
SELECT Sname, cname, grade
FROM V_ssc
GROUP BY Sname, cname, grade
HAVING AVG(grade) > 90;
这条SQL语句将返回视图V_ssc中,平均成绩在90分以上的学生姓名、课程名称和成绩。首先,使用GROUP BY子句将结果按学生姓名、课程名称和成绩分组。然后,使用HAVING子句过滤出平均成绩大于90分的结果。
这样,我们就可以得到在视图V_ssc上查询平均成绩在90分以上的学生姓名、课程名称和成绩的结果。
阅读全文