`
z_xiaofei168
  • 浏览: 200982 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

oracle的常见面试题,仅供大家参考

阅读更多

oracle的常见面试题,仅供大家参考

     前两天我做了一些oracle的面试题,觉得挺不错的,难易程度中等,今天总结了一下,仅供大家参考和学习。以下就是我做的面试题,大家可以看看。如果有什么不懂的给我留言,我们可以互相交流,互相讨论。共同进步,共同学习。

     我给大家列一下emp和dept这两张表,表如下:

SQL> select * from emp;
 
EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
 7369 SMITH      CLERK      7902 1980-12-17     800.00               20
 7499 ALLEN      SALESMAN   7698 1981-2-20     1600.00    300.00     30
 7521 WARD       SALESMAN   7698 1981-2-22     1250.00    500.00     30
 7566 JONES      MANAGER    7839 1981-4-2      2975.00               20
 7654 MARTIN     SALESMAN   7698 1981-9-28     1250.00   1400.00     30
 7698 BLAKE      MANAGER    7839 1981-5-1      2850.00               30
 7782 CLARK      MANAGER    7839 1981-6-9      2450.00               10
 7788 SCOTT      ANALYST    7566 1982-12-9     3000.00               20
 7839 KING       PRESIDENT       1981-11-17    5000.00               10
 7844 TURNER     SALESMAN   7698 1981-9-8      1500.00      0.00     30
 7876 ADAMS      CLERK      7788 1983-1-12     1100.00               20
 7900 JAMES      CLERK      7698 1981-12-3      950.00               30
 7902 FORD       ANALYST    7566 1981-12-3     3000.00               20
 7934 MILLER     CLERK      7782 1982-1-23     1300.00               10
 
14 rows selected
 
SQL> select * from dept;
 
DEPTNO DNAME          LOC
------ -------------- -------------
    10 ACCOUNTING     NEW YORK
    20 RESEARCH       DALLAS
    30 SALES          CHICAGO
    40 OPERATIONS     BOSTON

  

01.查询员工表所有数据,并说明使用*的缺点

select * from emp;

  使用“*”效率不高
02.查询职位(JOB)为'PRESIDENT'的员工的工资

select sal from emp where job='PRESIDENT';

 03.查询佣金(COMM)为0或为NULL的员工信息

select * from emp where comm is null or comm=0;

 04.查询入职日期在1982-5-1到1981-12-31之间的所有员工信息

select * from emp where hiredate between to_date('1981-05-01','YYYY-MM-DD') and to_date('1981-12-31','YYYY-MM-DD');

 05.查询所有名字长度为4的员工的员工编号,姓名

select empno,ename from emp where length(ename)=4;

 06.显示10号部门的所有经理('MANAGER')和20号部门的所有职员('CLERK')的详细信息

select * from emp where deptno=10 and job='MANAGER' or deptno=20 and job='CLERK';

 07.显示姓名中没有'L'字的员工的详细信息或含有'SM'字的员工信息

select * from emp where ename not like '%L%' or ename like '%SM%';

 08.显示各个部门经理('MANAGER')的工资

select sal from emp where job='MANAGER';

 09.显示佣金(COMM)收入比工资(SAL)高的员工的详细信息

select * from emp where comm>sal;

 10.把hiredate列看做是员工的生日,求本月过生日的员工(考察知识点:单行函数)

select * from emp where to_char(hiredate,'mm')=to_char(sysdate,'mm');

 11.把hiredate列看做是员工的生日,求下月过生日的员工(考察知识点:单行函数)

select * from emp where to_char(hiredate,'mm')=to_char(add_months(sysdate,1),'mm');

 12.求1982年入职的员工(考察知识点:单行函数)

select * from emp where hiredate between to_date('1982-01-01','YYYY-MM-DD') and to_date('1982-12-31','YYYY-MM-DD');

 --------等效于---------->

select * from emp where to_char(hiredate,'yyyy')='1982';

 13.求1981年下半年入职的员工(考察知识点:单行函数)

select * from emp where hiredate between to_date('1981-07-01','YYYY-MM-DD') and to_date('1981-12-31','YYYY-MM-DD');

 14.求1981年各个月入职的员工个数(考察知识点:组函数)

select count(*),to_char(trunc(hiredate,'month'),'YYYY-MM-DD') from emp where to_char(hiredate,'yyyy')='1981' group by trunc(hiredate,'month');

 15.查询各个部门的平均工资

select avg(nvl(sal,0)),deptno from emp group by deptno;

 16.显示各种职位的最低工资

select job,min(nvl(sal,0)) from emp group by job;

 17.按照入职日期由新到旧排列员工信息

select * from emp order by hiredate desc;

 18.查询员工的基本信息,附加其上级的姓名

select e.*,e1.ename as "上级的姓名" from emp e inner join emp e1 on e.mgr=e1.empno;

 -------等效于--------->

select e.*,e1.ename from emp e,emp e1 where e.mgr=e1.empno;

 19.显示工资比'ALLEN'高的所有员工的姓名和工资

select ename,sal from emp where sal>(select sal from emp where ename='ALLEN');

 20.显示与'SCOTT'从事相同工作的员工的详细信息

select * from emp where job=(select job from emp where ename='SCOTT');

 21.显示销售部('SALESMAN')员工的姓名

select ename from emp e,dept d where e.deptno=d.deptno and d.dname='SALESMAN';

 22.显示与30号部门'MARTIN'员工工资相同的员工的姓名和工资

select ename,sal from emp where sal=(select sal from emp where ename='MARTIN' and deptno=30);

 23.查询所有工资高于平均工资的销售人员('SALESMAN')

select * from emp where job='SALESMAN' and sal>(select nvl(sal,0) from emp);

 24.显示所有职员的姓名及其所在部门的名称和工资

select ename,dname as "部门名称",sal from emp e inner join dept d on e.deptno=d.deptno;

 25查询在研发部('RESEARCH')工作员工的编号,姓名,工作部门,工作所在地

select empno,ename,dname,loc from emp,dept where emp.deptno=dept.deptno and dname='RESEARCH';

 26.查询各个部门的名称和员工人数

select * from (select deptno,count(*) from emp group by deptno) e inner join dept on e.deptno=dept.deptno;

 27.查询各个职位员工工资大于平均工资(平均工资包括所有员工)的人数和员工职位

select count(*),job from emp where sal>(select avg(sal) from emp) group by job;

 28.查询工资相同的员工的工资和姓名

select * from emp e where (select count(*) from emp where sal=e.sal group by sal)>1;

 29.查询工资最高的3名员工信息

select * from (select * from emp order by sal desc) where rownum<=3;

 30.按工资进行排名,排名从1开始,工资相同排名相同(如果两人并列第1则没有第2名,从第3名继续排)

select e.*,(select count(*) from emp where sal>e.sal)+1 rank from emp e order by rank;

 31.求入职日期相同的(年月日相同)的员工

select * from emp e where (select count(*) from emp where e.hiredate=hiredate)>1;

 32.查询每个部门的最高工资

select deptno,max(sal) from emp group by deptno order by deptno;

 33.查询每个部门,每种职位的最高工资

select deptno,job,max(sal) from emp group by deptno,job order by deptno,job;

 34.查询每个部门有多少人

select deptno,count(*) from emp group by deptno;

 

4
1
分享到:
评论
2 楼 q52424368 2011-08-01  
好东西!
1 楼 刀枪剑戟 2011-04-12  
谢谢分享~~~~~

相关推荐

    Oracle常见面试题

    以下是一些关于Oracle常见面试题的知识点,这些知识点对于理解Oracle数据库的核心概念、功能和最佳实践至关重要。 1. **Oracle数据库版本与组件**:了解Oracle的不同版本(如Standard Edition、Enterprise Edition...

    Oracle的常见面试题和答案

    Oracle的常见面试题,Oracle的常见面试题,Oracle的常见面试题

    oracle常见面试题及答案

    Oracle常见面试题及答案 Oracle 是一种关系数据库管理系统,广泛应用于各种行业。以下是 Oracle 相关的面试题及答案,涵盖了 Oracle 的基础知识、存储过程、索引、约束、查询等方面。 1. 如何创建一个邮件系统,...

    oracle常见面试题

    以下是一些在面试中可能会遇到的Oracle常见问题及其详细解释: 1. **Oracle数据库版本** - Oracle提供了多个版本,如企业版、标准版、Express版等。了解这些版本的区别以及它们在功能、性能和许可上的差异是非常...

    Oracle常见面试题.pdf

    Oracle常见面试题 本资源摘要信息将对 Oracle 常见面试题进行详细的知识点解释。 1. 对数据库SQL2005、ORACLE 熟悉吗? * SQL2005 是微软公司的数据库产品,一个 RDBMS 数据库,应用于中型数据库,不能跨平台。 *...

    JAVA+Oracle面试题(有答案

    oarcle java 面试题 答案 Java面试 Oracle面试

    oracle数据库常见面试题

    以下是一些Oracle数据库常见的面试题及其详解: 1. **Oracle数据类型**:了解Oracle支持的数据类型,如VARCHAR2、NUMBER、DATE、BLOB等,以及它们的应用场景。 2. **SQL基础**:掌握基本的SQL语句,如SELECT、...

    Oracle企业面试题集锦

    以上就是从提供的信息中总结出的Oracle企业面试题集锦中的核心知识点,涵盖了Oracle与SQL Server的区别、Oracle特性、数据库管理、性能优化等多个方面。这些知识点对于深入理解和掌握Oracle数据库的使用和管理具有...

    oracle常见面试题.docx

    【Oracle常见面试题详解】 1. 数据库对比:SQL2005是微软的RDBMS,适用于中型应用,不跨平台;Oracle是ORACLE公司的ORDBMS,支持大规模数据存储、分布式部署、多用户及跨平台,适用于大型企业。 2. 数据库设计与...

    Oracle数据库DBA面试题50道及答案.pdf

    以下是针对给定的Oracle数据库DBA面试题的知识点详细解析: 1. **冷备份和热备份的区别及其优点**: - **热备份**:在数据库运行时(归档模式下)进行备份。优点是可以使用数据库,且可将数据库恢复到任意时间点。...

    Oracle最新面试题2021年,常见面试题及答案汇总.md

    Oracle最新面试题2021年,常见面试题及答案汇总

    Oracle经典面试题(个人精心收集,值得收藏)

    本资料集合了多年以来个人精心收集的Oracle经典面试题,旨在帮助求职者或数据库管理员更好地准备面试,理解Oracle数据库的核心概念和技术。 1. **SQL基础** - SQL(Structured Query Language)是用于管理关系...

    oraclesql面试题

    从给定的Oracle SQL面试题中,我们可以提炼出多个关键知识点,这些知识点涵盖了SQL查询、数据操作、表结构设计以及Oracle数据库的一些高级特性。以下是对这些知识点的详细解析: ### 1. 数据分组与聚合函数 在第一...

    oracle部分面试题oracle部分面试题

    oracle 部分面试题 Oracle 部分面试题涵盖了多个方面的知识点,包括数据查询、数据分析、数据处理等。下面是对每个面试题的详细解释和知识点总结: 面试题一(厦门) 题目:找出忘记填写性别的员工 知识点: * ...

    oracle常见面试题[参考].pdf

    Oracle数据库在软件开发中扮演着重要角色,是大型...以上内容涵盖了Oracle数据库的一些核心概念和技术,是软件开发面试中常见的Oracle相关问题。理解并掌握这些知识点对于成为一名合格的Oracle数据库开发者至关重要。

    DBA面试题 oracle

    DBA面试题 Oracle 本文总结了 Oracle 数据库管理员(DBA)面试中的一些重要知识点,从表连接方式、执行计划、CBO 和 RBO、SQL 调整、索引、绑定变量、执行计划、排序等方面进行了详细的解释。 一、表连接方式 在 ...

    oracle企业面试题集锦.pdf

    "Oracle企业面试题集锦.pdf" Oracle 企业面试题集锦旨在为应试者提供一个系统的 Oracle 面试题集锦,涵盖了 Oracle 的各种知识点,从宏观到微观,全面介绍了 Oracle 的特点、优点和使用方法。 一、Oracle 和 SQL ...

    Oracle DBA面试题及参考答案

    【Oracle DBA面试题及参考答案】 在Oracle数据库管理(DBA)领域,面试通常涉及到解决实际问题和优化数据库性能的能力。以下是一些可能出现在Oracle DBA面试中的问题及其详细解答: 1. **如果信息采集管理系统(ICM)...

    oracle常见笔试面试题

    对于Oracle的笔试和面试,理解其核心概念和技术是至关重要的。以下是一些Oracle基础知识点的详细说明: 1. **Oracle体系结构**: - **参数文件** (spfile+实例名称.ora | database 目录):存储数据库的配置信息,...

Global site tag (gtag.js) - Google Analytics