学习大数据DAY13 PLSQL基础语法2-作业

--1.输入两个数字判断两个数字的大小

declare

a number(6,3):=&输入a的值;

b number(6,3):=&输入b的值;

begin

  if a>b then dbms_output.put_line('a更大');

  elsif b>a then dbms_output.put_line('b更大');

  else dbms_output.put_line('都挺大的');  

  end if; 

  end;

--2.输入一个数字输出这个数字是偶数还是奇数

declare

n number(4):=&输入一个数字判断奇偶;

begin

  if mod(n,2)=0 then dbms_output.put_line('这是偶数');

  else dbms_output.put_line('这是奇数');

  end if;  

  end;

--3.判断一个日期是否是星期六或星期日,休息日则开耍,上班日则搬砖

declare

DayTime date:=to_date('&输入一个日期,精确到日','yyyymmdd');

begin

  if to_char(DayTime,'day')='星期六'

    or to_char(DayTime,'day')='星期日'

     then dbms_output.put_line('这天是休息日,开耍!');

     else dbms_output.put_line('搬砖'); 

       end if;

  end;

/*4.判断一个年份是否是闰年,400整除是世纪闰年,100不整除并且被4整除是闰年,其余

是平年*/

declare

ryear number(5):=&输入一个年份;

begin

  if mod(ryear,400)=0 or mod(ryear,100)!=0 and mod(ryear,4)=0

    then dbms_output.put_line('这个年份是闰年');

    else dbms_output.put_line('这个年份是平年');  

    end if;

  end;

/*5.请输入一个员工编号,如果是10号部门则员工上调工资10%,如果是20号部门则工资

上调20%,如果是30号部门则工资上调30%*/

declare

sempno emp.empno%type:=&请输入一个员工编号,根据其部门号涨薪;

dempno emp.deptno%type;

begin

  select distinct deptno into dempno from emp

  where empno=sempno;

  if dempno=10

    then update emp set sal=sal*1.1

      where empno=sempno;

    elsif dempno=20

      then update emp set sal=sal*1.2

         where empno=sempno;

      elsif dempno=30

        then update emp set sal=sal*1.3

           where empno=sempno;

        else dbms_output.put_line('该员工不存在或没有涨薪资格!');

        end if; 

  end;

--6.输入三个数,不考虑相等,有小到大打印输出

create table AbcNumber(

sNumber number(6,3));--建一个表

declare

a AbcNumber.sNumber%type:=&输入数值a;

b AbcNumber.sNumber%type:=&输入数值b;

c AbcNumber.sNumber%type:=&输入数值c;

roww number(20);--装载排名最小值

maxroww number(20);--装载排名最大值

ABC AbcNumber.sNumber%type;--将数据逐个装入并输出用的参数

begin

  insert into AbcNumber values(a);

  insert into AbcNumber values(b);--将数据插入表中一列

  insert into AbcNumber values(c); 

  select r into roww from(

  select row_number()over(order by sNumber asc) r from AbcNumber

  ) where r=1;--装载排名最小值

  select max(r) into maxroww from(

  select row_number()over(order by sNumber asc) r from AbcNumber

  );--装载排名最大值

  for i in roww .. maxroww--将数据逐个装入并输出

    loop

      select sNumber into ABC from(

      select sNumber,row_number()over(order by sNumber asc) r from AbcNumber )

      where r=i; 

      dbms_output.put_line(ABC);

      end loop; 

  end;


选择结构语句判定示意图:

上一篇:构建工具


下一篇:Foxit Reader:高效、安全、多功能的PDF阅读器技术解析