首页 > 数据库 > Oracle > 软件1111 Oracle答案参考 阿飞博客
oracle上机练习题参考地址
1、创建一个名为zy_view的视图,该视图可以用来查看每个系名称和学生人数。查看视图。
2、创建一名为xs_view的视图,该视图可以用来查看每个学生的姓名、选修的课程名和成绩。查看视图。
3、创建一个名为kc_view的视图,该视图可以用来查看每门课的课程号,课程名,选修人数和平均成绩。
select kc.kch,kcm,count(xh),avg(cj) from xs_kc,kc
where xs_kc.kch=kc.kch
group by kc.kch,kcm;
select * from kc_view;
4、利用kc_view视图,查看平均成绩最高的课程名。
5、修改xs_view视图,将视图重定义为每个学生的姓名、选课门数和平均成绩。
as
select xm,ms,pj from(
select xs.xh,xm,count(kch) ms,avg(cj) pj from xs_kc,xs
where xs.xh=xs_kc.xh
group by xs.xh,xm);
elect * from xs_view;
6、删除zy_view视图。
drop view zy_view;
PL/SQL编程
1.如果李明同学的年龄大于20岁,则显示“李明同学年龄为X岁”,否则打印“李明同学不符合条件”
set serveroutput on
declare
age number(2);
begin
select
to_char(sysdate,'yyyy')-to_char(cssj,'yyyy')
IF age>20 THEN dbms_output.put_line('李明同学年龄为'||to_char(age)||'岁');
ELSE dbms_output.put_line('李明同学不符合条件');
END IF;
end;
/
2.假设某个学生所有课程成绩的平均分小于60,那么设置奖学金类型为“三等奖”;如果大于或者等于90,则设置奖学金类型为“一等奖”,其余设置为“二等奖”。 已知该学生姓名为李明,显示“李明同学的奖学金等级为X等奖”。
set serveroutput on
declare
cj number(4,2);
jxj varchar2(10);
begin
select
avg(cj)
if cj<60 then jxj:='三等奖';
else if cj>=90 then jxj:='一等奖';
else jxj:='二等奖';
end if;
end if;
dbms_output.put_line('李明同学的奖学金等级为'||jxj);
end;
/
3.计算1+3+5+……+9的和,并显示结果。
set serveroutput on
/
4.编写一个函数f_age,可以在xs表中根据姓名求出某人的年龄。
/
5.改写第1题的程序块,调用函数f_age来求年龄。
set serveroutput on
declare
age number(2);
begin
IF age>20 THEN dbms_output.put_line('李明同学年龄为'||to_char(age)||'岁');
ELSE dbms_output.put_line('李明同学不符合条件');
END IF;
end;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22512921/viewspace-1115978/ ,如需转载,请注明出处,否则将追究法律责任。