目录
2.‘0811101’同学的平均分若高于80分则显示’成绩优秀!’,否则显示’努力学习!’
3.将’0811101‘同学选修的’C002‘课程按成绩划分等级,90分以上’优秀’,80分以上’良好’ ,70分以上’中等’ ,60分以上’及格’ ,其它为不及格。
4.根据输入的学号查询该名学生的姓名,若没有输入学号的学生,则抛出异常“没有该学生”。
5.修改‘0811101’同学选修的‘C002’的成绩,若超出100,则不做修改。(如果建表时已经设置了成绩不能超出100的约束,则不能在此表执行)
7.创建名为“F1”的函数,以课程号为参数,返回该门课程的平均成绩。
1 . 根据学生学号查询学生姓名、所在系。
declare
vid s.sid%type:=&a;
vname s.sname%type;
vdept s.department%type;
begin
select sname,department into vname,vdept from s where sid=vid;
dbms_output.put_line(vname||' '||vdept);
end;
2.‘0811101’同学的平均分若高于80分则显示’成绩优秀!’,否则显示’努力学习!’
declare
vgrade sc.grade%type;
begin
select avg(grade) into vgrade from sc where sid=103;
if vgrade>80 then dbms_output.put_line('成绩优秀!');
else dbms_output.put_line('努力学习!');
end if;
end;
3.将’0811101‘同学选修的’C002‘课程按成绩划分等级,90分以上’优秀’,80分以上’良好’ ,70分以上’中等’ ,60分以上’及格’ ,其它为不及格。
declare
vgrade sc.grade%type;
begin
select grade into vgrade from sc where sid=103 and cid=3245;
if vgrade>90 then dbms_output.put_line('优秀!');
elsif vgrade>80 and vgrade<=90 then dbms_output.put_line('良好!');
elsif vgrade>70 and vgrade<=80 then dbms_output.put_line('中等!');
elsif vgrade>60 and vgrade<=70 then dbms_output.put_line('及格!');
else dbms_output.put_line('不及格');
end if;
end;
4.根据输入的学号查询该名学生的姓名,若没有输入学号的学生,则抛出异常“没有该学生”。
declare
vid s.sid%type:=&a;
vname s.sname%type;
vdept s.department%type;
begin
select sname,department into vname,vdept from s where sid=vid;
dbms_output.put_line(vname||' '||vdept);
exception
when no_data_found then dbms_output.put_line('没有该学生');
end;
5.修改‘0811101’同学选修的‘C002’的成绩,若超出100,则不做修改。(如果建表时已经设置了成绩不能超出100的约束,则不能在此表执行)
declare
vgrade sc.grade%type;
begin
select avg(grade) into vgrade from sc where sid=103 and cid=3245;
if vgrade>=100 then dbms_output.put_line('不能修改!');
else update sc set grade=90 where sid=103 and cid=3245;
end if;
end;
6.创建一个函数,根据输入的课程号,输出最高成绩
create or replace function mt(vcid sc.cid%type) return number
is
mgrade sc.grade%type;
begin
select max(grade) into mgrade from sc where cid=vcid;
return mgrade;
end;
select mt(3245) from dual;
7.创建名为“F1”的函数,以课程号为参数,返回该门课程的平均成绩。
create or replace function F1(vno sc.cid%type)return number
is
vgrade sc.grade%type;
begin
select avg(grade) into vgrade from sc where cid=vno;
return vgrade;
end;
select F1(3245) from dual;
本文展示了使用PL/SQL进行学生信息查询,包括查询学生姓名、所在系,判断学生成绩是否优秀,按等级划分课程成绩,处理异常情况,修改成绩,以及创建函数获取最高分和平均成绩。这些示例涵盖了数据库操作的基本要素。
317

被折叠的 条评论
为什么被折叠?



