zoukankan      html  css  js  c++  java
  • 面试题: 数据库笔试 sql操作 已看 上课的练习题50sql

    2018/5/31 oracle数据库面试笔试试题总结
    http://www.yjbys.com/qiuzhizhinan/show-308759.html 1/4
    Oracle数据库
    1.基础测试
    选择在部门 30 中员工的所有信息
    Select * from emp where deptno=30;
    列出职位为(MANAGER)的员工的编号,姓名
    Select empno,ename from emp where job = ?Manager ?;
    找出奖金高于工资的员工
    Select * from emp where comm>sal;
    找出每个员工奖金和工资的总和
    Select sal+comm,ename from emp;
    找出部门 10 中的经理(MANAGER)和部门 20 中的普通员工(CLERK)
    Select * from emp where (deptno=10 and job=?MANAGER?) or (deptno=20 and job=?
    CLERK?);
    找出部门 10 中既不是经理也不是普通员工,而且工资大于等于 2000 的员工 Select * from
    emp where deptno=10 and job not in(?MANAGER?,?CLERK) ? and sal>=2000;
    找出有奖金的员工的不同工作
    Select distinct job from emp where comm is not null and comm>0
    找出没有奖金或者奖金低于 500 的员工
    Select * from emp where comm<500 or comm is null;
    显示雇员姓名,根据其服务年限,将最老的雇员排在最前面
    select ename from emp order by hiredate ;
    2.函数测试
    找出每个月倒数第三天受雇的员工(如:2009-5-29)
    select * from emp where last_day(hiredate)-2=hiredate;
    找出 25 年前雇的员工
    2018/5/31 oracle数据库面试笔试试题总结
    http://www.yjbys.com/qiuzhizhinan/show-308759.html 2/4
    select * from emp where hiredate<=add_months(sysdate,-25*12);< p="">
    所有员工名字前加上 Dear ,并且名字首字母大写
    select Dear || initcap(ename) from emp;
    找出姓名为 5 个字母的员工
    select * from emp where length(ename)=5;
    找出姓名中不带 R 这个字母的员工
    select * from emp where ename not like %R%;
    显示所有员工的姓名的第一个字
    select substr(ename,0,1) from emp;
    显示所有员工,按名字降序排列,若相同,则按工资升序排序
    假设一个月为 30 天,找出所有员工的日薪,不计小数
    找到 2 月份受雇的员工
    select * from emp where to_hiredate,fmmm)=2;

    3.分组函数
    分组统计各部门下工资>500 的员工的平均工资、
    Select avg(sal) from emp where sal>500 group by deptno ;
    统计各部门下平均工资大于 500 的部门
    select deptno,avg(sal) from emp group by deptno having avg(sal)>500 ;

    算出部门 30中得到最多奖金的员工奖金

    Select max(comm) from emp where deptno = 30 ;
    算出部门 30 中得到最多奖金的员工姓名
    select ename from emp where comm = (select max(comm) from emp where deptno=30);
    算出每个职位的员工数和最低工资
    Select job,min(sal),count(*) from emp group by job;
    列出员工表中每个部门的员工数,和部门 no
    2018/5/31 oracle数据库面试笔试试题总结
    http://www.yjbys.com/qiuzhizhinan/show-308759.html 3/4
    Select count(*),deptno from emp group by deptno;
    得到工资大于自己部门平均工资的员工信息
    select * from emp e1,(select deptno,avg(sal) as avgsal from emp group by deptno) e2
    where e1.deptno=e2.deptno and e1.sal > e2.avgsal;
    分组统计每个部门下,每种职位的平均奖金(也要算没奖金的人)和总工资(包括奖金) select
    deptno,job,avg(nvl(comm,0)),sum(sal+nvl(comm,0)) from emp group by deptno,job;
    4.多表联查
    列出员工表中每个部门的员工数,和部门 no
    select deptno,count(*) from emp group by deptno;
    列出员工表中每个部门的员工数(员工数必须大于 3) ,和部门名称
    select d.* ,ed.cou from dept d,(select deptno,count(*) cou from emp group by deptno
    having count(*)>3) ed where d.deptno=ed.deptno;
    找出工资比 jones 多的员工
    select * from emp where sal>=(select sal from emp where
    lower(ename)=jones);
    列出所有员工的姓名和其上级的姓名
    select e1.ename as lower ,e2.ename as upper from emp e1,emp e2 where e1.mgr
    = e2.empno;
    select e1.ename as lower ,e2.ename as upper from emp e1,emp e2 where e1.mgr =
    e2.empno(+);
    以职位分组,找出平均工资最高的两种职位
    Select * from ( select avg(sal) from emp order by job desc ) where rownum<3; 20=""
    select="" d.dname="" from="" emp="" dept="" d="" where="" and="" e.sal="">(select
    max(sal) from
    emp where deptno=20) and e.deptno=d.deptno
    得到平均工资大于 2000 的工作职种
    2018/5/31 oracle数据库面试笔试试题总结
    http://www.yjbys.com/qiuzhizhinan/show-308759.html 4/4
    select job from emp group by job having avg(sal) > 2000;
    分部门得到工资大于 2000 的所有员工的平均工资,并且平均工资还要大于 2500 select
    deptno,avg(sal) from emp where sal>2000 group by deptno having avg(sal)>2500;
    得到每个月工资总数最少的那个部门的部门编号,部门名称,部门位置 select * from dept
    where
    deptno = (
    select e.deptno from
    (select deptno,sum(sal) from emp group by deptno order by sum(sal)) e
    where rownum=1
    );

  • 相关阅读:
    关于virtual、非virtual继承函数的调用
    关于文件操作的文件格式与打开方式
    C++ 文件读写操作
    C++语法题
    检测java string变量是否含有中文
    常用知识库
    WMS仓储管理系统
    运输管理
    ipconfig/flushdns 清除系统DNS缓存
    cmd查看域名账号相关的命令
  • 原文地址:https://www.cnblogs.com/shan1393/p/9117642.html
Copyright © 2011-2022 走看看