设为首页 收藏本站
查看: 1081|回复: 0

[经验分享] Oracle 常用练习 经典面试题

[复制链接]

尚未签到

发表于 2016-8-10 06:43:38 | 显示全部楼层 |阅读模式
  --1.选择部门30中的所有员工.
select * from emp where deptno = 30
  --2.列出所有办事员(CLERK)的姓名,编号和部门编号.
select ename,empno,deptno from emp where job='CLERK'
  --3.找出佣金高于薪金的员工.
select * from emp where comm>sal
  --4.找出佣金高于薪金的60%的员工.
select * from emp where comm>(sal*0.6)
  --5.找出部门10中所有经理(MANAGER)和部门20中所有办事员(CLERK)的详细资料.
select * from emp where (job='MANAGER' and deptno=10) or (job='CLERK' and deptno=20)
  --6.找出部门10中所有经理(MANAGER),部门20中所有办事员(CLERK),既不是经理又不是办事员但其薪金大于或等于2000的所有员工的详细资料.
select * from emp where (job='MANAGER' and deptno=10) or (job='CLERK' and deptno=20) or (job!='MANAGER' and job!='CLERK' and sal>=2000)
  --7.找出收取佣金的员工的不同工作.
select distinct job from emp where comm>0
  --8.找出不收取佣金或收取的佣金低于100的员工.
select * from emp where comm is null or comm<100
  --9.找出各月倒数第3天受雇的所有员工.
select * from emp where hiredate=last_day(hiredate)-2
--last_day(date类型参数),返回一个月的最后一天
  --10.找出早于12年前受雇的员工.
select * from emp where months_between(sysdate,hiredate)>=144
--months_between(date1,date2),返回两个日期之间的月份个数
  --11.以首字母大写的方式显示所有员工的姓名
select initcap(ename) from emp
--initcap(string),返回首字母大写的字符串
  --12.显示正好为5个字符的员工的姓名.
select ename from emp where length(ename)=5
--length(string),返回字符串的长度
  --13.显示不带有"R"的员工的姓名.
select ename from emp where ename not like '%R%'
  --14.显示所有员工姓名的前三个字符.
select substr(ename,1,3) from emp
/**//*substr(string,start,count),截取字符串长度,
start起始位数,count截取的位数,
如果不写count就是从start开始截取到最后*/
  --15.显示所有员工的姓名,用a替换所有"A"
select replace(ename,'A','a') from emp
/**//*replace(string,if,then),字符串替换,用then替换if*/
  --16.显示满10年服务年限的员工的姓名和受雇日期.
select ename,hiredate from emp where months_between(sysdate,hiredate)>=120
  --17.显示员工的详细资料,按姓名排序.
select * from emp order by ename
--18.显示员工的姓名和受雇日期,根据其服务年限,将最老的员工排在最前面.
select ename,hiredate from emp order by hiredate
  --19.显示所有员工的姓名、工作和薪金,按工作的降序排序,若工作相同则按薪金排序.
select ename,job,sal from emp order by job desc,sal
  --20.显示所有员工的姓名、加入公司的年份和月份,按受雇日期所在月排序,若月份相同则将最早年份的员工排在最前面.
select ename, to_char(hiredate,'yyyy-mm') from emp order by to_char(hiredate,'mm'),to_char(hiredate,'yy')
--to_char(非string,'格式'),按格式把数据转换成字符类型,格式可以省略
  --21.显示在一个月为30天的情况所有员工的日薪金,忽略余数.
select trunc(sal/30,0) from emp
--no四舍五入
  --22.找出在(任何年份的)2月受聘的所有员工。
select * from emp where to_char(hiredate,'mm')=02
  --23.对于每个员工,显示其加入公司的天数.
select trunc(sysdate-hiredate,0) from emp
  --24.显示姓名字段的任何位置包含"A"的所有员工的姓名.
select ename from emp where ename like '%A%'
  --25.以年月日的方式显示所有员工的服务年限. (大概)
select to_char(to_date('0001-01-01','yyyy-mm-dd') + (sysdate-hiredate) - 365 - 31 - 1,'yyyy-mm-dd') from emp

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-255467-1-1.html 上篇帖子: (oracle)如何创建和使用procedure 下篇帖子: 在oracle中创建一个exception
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表