Oracle实验三 PL/SQL匿名块

Oracle实验三 PL/SQL匿名块

第1关:PL/SQL匿名块1

1、打印001号学生的姓名和年龄。打印结果格式(忽略行标号,其中冒号为中文状态下的冒号):

   001号同学的姓名:查询出的姓名
   001号同学的年龄:查询出的年龄
declare
vsname varchar(20);
vsage smallint;
begin
select sname,sage into vsname,vsage from Student 
where sno='001';
dbms_output.put_line('001号同学的姓名:'||vsname);
dbms_output.put_line('001号同学的年龄:'||vsage);
end;

2、将年龄最大的同学的学号,姓名,年龄打印出来(注:年龄最大的同学只有一个)。其格式为(忽略行标号):

查询出来的学号,查询出来的姓名,查询出来的年龄,性别(查询出来的性别,若是’f’,显示:美女。若是’m’显示:帅哥。)
例如:(其中逗号为英文状态下的逗号)
001,张三,20,美女
declare
vsno char(10);
vsname varchar(20);
vsage smallint;
vssex char(2);
begin
select sno,sname,sage,sex into vsno,vsname,vsage,vssex from Student
where sage>=all(select sage from Student);
if vssex='m' then
dbms_ouput.put_line(vsno||','||vsname||','||vsage||','||'帅哥');
else 
dbms_ouput.put_line(vsno||','||vsname||','||vsage||','||'美女');
end if;
end;

第2关:PLSQL匿名块2

1、将‘004’号同学的年龄改为18岁,系别改为‘E’,为CS系年龄最小的同学选‘C01’号课程。

commit别忘记!

begin
update Student set sage=18,sdept='CS' where sno='004';
insert into SC(sno,cno) select sno,'C01' from Student where sdept='CS' and sage<=all(select sage from Student where sdept='CS') and not exists(select*from SC where sno=Student.sno and cno='C01');
commit;
end;

2、为‘002’号同学选‘C02’课程。将选课人数最多的课程的最大选课人数(snumber)改为105。

begin
insert into SC(sno,cno) values('002','C02');
update Course set snumber=105 where cno in(select cno from SC where Course.cno=SC.cno group by SC.cno having count(sno)>=all(select count(sno) from SC group by SC.cno));
commit;
end;
  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值