Oracle 练习题 20131017

原创 2013年12月05日 17:06:21
--2013-10-17 练习题

--1、输入一个年份,判断其是不是闰年,并做相应的提示。
--方法一:正常算
declare
  v_year number := 1900;
begin
  if mod(v_year,100) = 0 then
    if mod(v_year,400) = 0 then
      dbms_output.put_line(v_year || '是闰年');
    else
      dbms_output.put_line(v_year || '是平年');
    end if;
  else
    if mod(v_year,4) = 0 then
      dbms_output.put_line(v_year || '是闰年');
    else
      dbms_output.put_line(v_year || '是平年');
    end if;
  end if;
end;
--方法二:last_day
declare
  v_year number := 2011;
begin
  case to_char(last_day(to_date(v_year || '02','yyyymm')),'dd')
    when 28 then dbms_output.put_line(v_year || '是平年');
    when 29 then dbms_output.put_line(v_year || '是闰年');
    else null;
  end case;
end;
--方法三:一年总天数
declare
  v_year number := 2000;
begin
  case to_date(v_year||'-12-31','yyyy-mm-dd')-to_date(v_year||'-01-01','yyyy-mm-dd') + 1
    when 365 then dbms_output.put_line(v_year || '是平年');
    when 366 then dbms_output.put_line(v_year || '是闰年');
    else null;
  end case;
end;

--2、输入一个月份,判断此月有多少天。
declare
  v_year number := &year;
  v_month number := &month;
begin
  dbms_output.put_line(v_year || ' 年 ' || v_month || ' 月有 ' || 
  to_char(last_day(to_date(v_year || v_month,'yyyymm')),'dd') || '天');
end;

--3、打印当前月份的日历表。
--已作
--http://blog.163.com/arrowsc/blog/static/2188332032013917534727

--4、用while循环打印如下三角形。
--*
--**
--***
--****
--*****
--******
--*******
--********
declare
  v_i number := 1;
  v_j number := 1;
begin
  while v_i <= 8 loop
    --dbms_output.put_line(v_i);
    while v_j > 0 loop
      dbms_output.put(v_i);
      v_j := v_j - 1;
    end loop;
    dbms_output.put_line('');
    v_i := v_i + 1;
    v_j := v_i;
  end loop;
end;

--5、用for循环打印九九乘法表。
--已作
--http://arrowsc.blog.163.com/blog/static/218833203201391110338723/
版权声明:本文为博主原创文章,未经博主允许不得转载。

oracle数据库经典练习题及答案

最近下载了一套oracle数据库习题(无答案),本人自己在oracle上练习得到的答案,如果不对的地方,请不要见怪。保存到博客方便自己以后查阅。 相关表: /*学生表*/ create tab...
  • yuzongtao
  • yuzongtao
  • 2014年12月28日 15:50
  • 6631

oracle笔记(9)---- 史上最全oracle练习题

1.取得每个部门最高薪水的人员名称       第一步:取得每个部门的最高薪水       select max(sal) from emp group by deptno; 第二步:根据第一步...
  • helongzhong
  • helongzhong
  • 2017年02月07日 18:03
  • 469

oracle-存储过程练习

--====================================存储过程=============================================== /* *scm_is...
  • y541397839
  • y541397839
  • 2014年11月13日 15:30
  • 976

Oracle的sql语句练习题含答案

--1、选择部门30中的雇员  select * from emp where deptno=30;  --2、列出所有办事员的姓名、编号和部门  select ename,empno,dname f...
  • zhangbingtao2011
  • zhangbingtao2011
  • 2016年04月07日 16:22
  • 468

oracle经典sql练习题

/*1、选择在部门30中员工的所有信息*/   select * from scott.emp where deptno = '30'   /*2、列出职位为(MANAGER)的员工的编号,姓名 ...
  • icanlove
  • icanlove
  • 2014年10月31日 08:53
  • 1241

一套Oracle SQL练习题及答案

create table student( sno varchar2(10) primary key, sname varchar2(20), sage number(2), ssex var...
  • jianfpeng241241
  • jianfpeng241241
  • 2015年06月16日 22:32
  • 237

Oracle的sql语句练习题含答案

1.选择部门30中的所有员工. 2.列出所有办事员(CLERK)的姓名,编号和部门编号. 3.找出佣金高于薪金的员工. 4.找出佣金高于薪金的60%的员工. 5.找出部门10中所有经理(MANAGER...
  • u012496929
  • u012496929
  • 2015年07月26日 16:30
  • 3895

史上最难oracle数据库练习题(附答案)

最难oracle练习题
  • qq_36870779
  • qq_36870779
  • 2017年01月01日 16:59
  • 865

oracle从入门到精通 之 三.SQL基础的练习题目(用心总结版)

/*Student(Sno,Sname,Sage,Ssex) 学生表    Course(Cno,Cname,Tno) 课程表    SC(Sno,Cno,score) 成绩表    Teach...
  • yusiyuuestc
  • yusiyuuestc
  • 2013年12月20日 23:22
  • 794

oracle练习之 子查询

子查询 问题1 : 按工资进行排名,排名从1开始,工资相同则排名相同,(如果两人并列第一则没有第二名 从第三名开始继续排) select e.* , (select count(*) fr...
  • qq_37643150
  • qq_37643150
  • 2017年03月31日 16:56
  • 459
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Oracle 练习题 20131017
举报原因:
原因补充:

(最多只允许输入30个字)