-----------------------练习一--------------------------------------------------------------
1.写一个查询,用首字母大写,其它字母小写显示雇员的 ename,显示名字的长度,
并给每列一个适当的标签,条件是满足所有雇员名字的开始字母是J、A 或 M 的
雇员,并对查询结果按雇员的ename升序排序。(提示:使用initcap、length、substr)
select initcap(ename) 员工姓名,length(ename) 名字的长度
from emp
where ename like ‘J%’ OR ename like ‘A%’ OR ename like ‘M%’
order by ename asc;

--------------------------练习二------------------------------------------------------------
1.查询员工姓名中中包含大写或小写字母A的员工姓名。
select ename 员工姓名
from emp
where ename like ‘%a%’ or ename like ‘%A%’

2.查询部门编号为10或20,入职日期在81年5月1日之后,并且姓名中包含大写字母A
的员工姓名,员工姓名长度(提示,要求使用INSTR函数,不能使用like进行判断)
select ename 员工姓名,length(ename) 名字的长度,deptno 部门编号,hiredate 入职日期
from emp
where deptno in(10,20) and hiredate>to_date(‘01-05-1981’,‘dd-mm-yyyy’) and instr(ename,‘A’)>0

3.查询每个职工的编号,姓名,工资
要求将查询到的数据按照一定的格式合并成一个字符串.
前10位:编号,不足部分用填充,左对齐
中间10位:姓名,不足部分用
填充,左对齐
后10位:工资,不足部分用填充,右对齐
select lpad(empno,10,’
’)||lpad(ename,10,’’)||rpad(sal,10,’’) from emp;
select lpad(empno,10,’’) 前10位,lpad(ename,10,’’) 中间10位,rpad(sal,10,’*’) 后10位 from emp;
-----------------------------练习三---------------------------------------------------------------
1.写一个查询,分别计算100.456 四舍五入到小数点后第2位,第1位,整数位的值。
select round(100.456,2) from dual;
select round(100.456,1) from dual;
select round(100.456,0) from dual;
2.写一个查询,分别计算100.456 从小数点后第2位,第1位,整数位截断的值。
select trunc(100.456,2) from dual;
select trunc(100.456,1) from dual;
select trunc(100.456,0) from dual;

--------------------------------练习四--------------------------------------------------------------
1.查询每个员工截止到现在一共入职多少天?
select empno 员工编号,ename 员工姓名,round(sysdate-hiredate,0) 入职天数 from emp;

2.当前日期为2015年,指定日期格式为DD-MON-RR,指定日期为01-1月-01,该日期实际所代表的日期为?
2015-01-01

3.当前日期为2015年,指定日期格式为DD-MON-RR,指定日期为01-1月-95,该日期实际所代表的日期为?
1995-01-01

4.当前日期为1998年,指定日期格式为DD-MON-RR,指定日期为01-1月-01,该日期实际所代表的日期为?
2001-01-01

5.当前日期为1998年,指定日期格式为DD-MON-RR,指定日期为01-1月-95,该日期实际所代表的日期为?
1998-01-01

6.当前日期为2015年,指定日期格式为DD-MON-YY,指定日期为01-1月-01,该日期实际所代表的日期为?
2001-01-01

7.当前日期为1998年,指定日期格式为DD-MON-YY,指定日期为01-1月-95,该日期实际所代表的日期为?
1995-01-01

----------------------------------练习五--------------------------------------------------------------
1.查询服务器当前时间
select sysdate from dual;

2.查询部门10,20的员工截止到2000年1月1日,工作了多少个月,入职的月份。(提示:使用months_between,extract)
select deptno 员工编号,ename 员工姓名,hiredate 入职日期,
trunc(months_between(to_date(‘01-01-2001’,‘dd-mm-yyyy’),hiredate)) 工作月数,
extract(month from hiredate) 入职的月份
from emp
where deptno in(10,20);

3.如果员工试用期6个月,查询职位不是MANAGER的员工姓名,入职日期,转正日期,
入职日期后的第一个星期一,入职当月的最后一天日期。(提示:使用add_months,next_day,last_day)
select ename 员工姓名,hiredate 入职日期,job 职位,
add_months(hiredate,6) 转正日期,
next_day(hiredate,‘星期一’) 入职日期后的第一个星期一,
last_day(hiredate) 入职当月的最后一天日期
from emp
where job<>‘MANAGER’;

----------------------------------练习六-----------------------------------------------------------------
1.显示服务器系统当前时间,格式为2007-10-12 17:11:11(提示:使用to_char函数)
select to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss’) 服务器系统当前时间 from dual;

2.显示ename、hiredate 和 雇员开始工作日是星期几,列标签DAY(提示:使用to_char函数)
select ename,hiredate,to_char(hiredate,‘DY’) day from emp;

3.查询员工姓名,工资,格式化的工资(¥999,999.99) (提示:使用to_char函数)
select ename 员工姓名,sal 工资,to_char(sal,‘U999,999.99’) 格式化的工资 from emp;

4.把字符串2015-3月-18 13:13:13 转换成日期格式,并计算和系统当前时间间隔多少天。 (提示:使用to_date函数)
select to_date(‘2015-3月-18 13:13:13’,‘yyyy-mm"月"-dd hh24:mi:ss’),
round(sysdate-to_date(‘2015-3月-18 13:13:13’,‘yyyy-mm"月"-dd hh24:mi:ss’),0)
from dual;

-------------------------------------课后练习----------------------------------------------------------------
1.计算2000年1月1日到现在有多少月,多少周(四舍五入)。
select round(months_between(sysdate,‘01-1月-00’)) 月,round(months_between(sysdate,‘01-1月-00’)*30/7) 周
from dual;

2.查询员工ENAME的第三个字母是A的员工的信息(使用2个函数)。
select *
from emp
where instr(ename,‘A’)=3;

select *
from emp
where substr(ename,3,1)=‘A’;

3.使用trim函数将字符串‘hello’、‘ Hello ’、‘bllb’、‘ hello ’分别处理得到下列字符串ello、Hello、ll、hello。
select trim(leading ‘h’ from ‘hello’),
trim(’ ’ from ’ Hello ‘),
trim(‘b’ from ‘bllb’),
trim(’ ’ from 'hello ')
from dual;

4.将员工工资按如下格式显示:123,234.00 RMB 。
select to_char(sal,‘999,999.99’)||‘RMB’ 员工工资 from emp;

5.查询员工的姓名及其经理编号,要求对于没有经理的显示“No Manager”字符串。
select ename 员工的姓名,nvl(to_char(mgr),‘No Manager’) 经理编号 from emp;

6.将员工的参加工作日期按如下格式显示:月份/年份。
select hiredate,to_char(hiredate,‘mm/yyyy’) as “月份/年份” from emp;

7.在员工表中查询出员工的工资,并计算应交税款:如果工资小于1000,税率为0,如果工资大于等于1000并小于2000,
税率为10%,如果工资大于等于2000并小于3000,税率为15%,如果工资大于等于3000,税率为20%。
select ename,sal,
case
when sal < 1000 then 0
when sal >=1000 and sal < 2000 then sal0.1
when sal >=2000 and sal <3000 then sal
0.15
when sal >=3000 then sal*0.2
else 0
end 应交税款
from emp;

8.创建一个查询显示所有雇员的 ename和 sal。格式化sal为 15 个字符长度,用 $ 左填充,列标签 SALARY。
select ename,sal,lpad(sal,15,’$’) as SALARY from emp;

oracle练习题(二)相关推荐

  1. Linux基础练习题(二)

    Linux基础练习题(二) 1.复制/etc/skel目录为/home/tuer1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限. [root@www ~]# cp -r ...

  2. Oracle 练习题 20131021 for 循环练习

    --Oracle 练习题 20131021 for 循环练习 --1.用for循环实现一个倒置的乘法表. begin for i in reverse 1 .. 9 loop for j in rev ...

  3. Oracle练习题(三)

    Oracle练习题(三) 说明:以下查询以scott模式下emp表和dept表为操作对象 (1) 查询一个月前入职的员工 select * from emp where months_between( ...

  4. Oracle练习题(九)

    Oracle练习题(九) (1) 创建一个存储过程,以员工号为参数,输出该员工的工资 --创建存储过程create or replace procedure print_sal(n number) a ...

  5. linux音源管理 二维表,Oracle【二维表管理:约束】

    1.简单的表创建和字段类型 最简单的方式去创建表(没有添加主键之类的约束条件) [Oracle的字段类型] number:数值类型 --整数类型:number(a) 总长度a --小数类型:numbe ...

  6. 计算机一级考试空格符号选择题,2018年9月计算机一级考试MSOffice练习题二

    出国留学网在这里为考生们整理了"2018年9月计算机一级考试MSOffice练习题",希望能帮到大家,想了解更多考试资讯,请关注小编的及时更新哦. 2018年9月计算机一级考试MS ...

  7. Oracle练习题(七)

    Oracle练习题(七) (1) 创建表student(sno,sname,sage,ssex,address) 其中sno为主键,并使用序列自动生成sno. create table student ...

  8. 下列选项html标记错误的是,网站美工设计师认证模拟练习题(二)

    网站美工设计师认证模拟练习题(二) 一.单选题 1.文本被做成超链接后,鼠标移到文本,光标会变成什么形状() A. 手形 B. 十字形 C. 向右的箭头 D. 没变化 2.下面关于超链接说法错误的是( ...

  9. 冯柯《我的ORACLE笔记二:关于回滚段》接力来袭!

    感谢大家对此文的关注!我们的活动还在继续中~您对文章内容有任何疑问时,欢迎您点击原文链接,填写阅读反馈表.我们不仅会邀请作者来回答问题,还会从中抽取一位粉丝赠送精美礼品一份哦~ <我的ORACL ...

  10. 唯一区分联网计算机的标识,信息技术练习题二答案

    信息技术练习题二 一.选择题 1. 能唯一区分联网电脑的标识是:( B ) A.网址 B.IP地址 C.邮件地址 D.计算机名称 2. 在使用Windows98的过程中,如果鼠标出现故障,在不能使用鼠 ...

最新文章

  1. 安卓-控制控件的宽度占屏幕的一半且水平居中显示
  2. oracle数据库分组查询group by
  3. Oracle---对字段进行修改(varchar2修改clob)+ 索引失效
  4. Oracle具有开放性吗,Oracle数据库的特点与工作原理
  5. 设置第三方的SMTP服务
  6. 打不死我的,终将使我强大!DevOps黑客马拉松参赛心得
  7. 右键添加git-bash
  8. 计算机科学文章,计算机科学导论论文范文
  9. Django中的form模块的高级处理
  10. Modal View Controllers, Not Model-View-Controller(MVC)
  11. python项目依赖库的导出和安装
  12. linux自建git仓库
  13. 在RT-Thread上移植EtherCAT开源主站SOEM1.4.0
  14. 小米路由器mini WOL网络唤醒插件
  15. 苹果电脑删除下载的更新文件_解决电脑管家病毒库更新误删除T6文件方法
  16. scienceWord总结
  17. Java学习—画图程序项目(2)
  18. vue-cli创建项目,webpack运行时在 95% emitting CompressionPlugin卡住不动
  19. opengl 多边形线框_OpenGL - 在纹理多边形上创建边框
  20. Ceph Cache Tier

热门文章

  1. 前端学习从入门到高级全程记录之39 (PHP基础Ⅱ)
  2. scada与MySQL连接_SCADA系统关系数据库转储
  3. IPC编程C语言,4. UNIX Domain Socket IPC
  4. 碳交易计价结算货币:理论、现实与选择
  5. 安装QQ的时候显示创建文件夹失败,无法正常安装,请尝试选择新的安装目录的解决办法
  6. 通过netd获取网卡的IP地址和硬件mac地址
  7. 树莓派--seafile搭建私人网盘
  8. correl函数_教你利用Correl函数返回相关系数并确定属性关系
  9. Eolink如何解决API测试痛点
  10. 【C#】KPM算法解决字符串匹配问题