Oracle数据库面试练习题
作者:网络转载 发布时间:[ 2016/2/22 10:46:43 ] 推荐标签:数据库
26.查询出名字中有“A”字符,并且薪水在1000以上(不包括1000)的所有员工信息。
分析: 模糊查询
select * from emp where ename like ‘%A%’ and sal > 1000;
27.查询出名字第三个字母是“M”的所有员工信息。
分析:第三个字母 __M%
select * from emp where ename like ‘__M%';
28.将所有员工按薪水升序排序,薪水相同的按照入职时间降序排序。
分析:select * from emp order by sal asc,hiredate desc;
29.将所有员工按照名字首字母升序排序,首字母相同的按照薪水降序排序。
分析:SUBSTRING(‘字符串’,第几个字符,长度); —- 首字母 substring(ename,1,1)
select * from emp order by substring(ename,1,1) asc,sal desc;
30.查询出早工作的那个人的名字、入职时间和薪水。
分析:早工作人 — hiredate 小值
select ename,hiredate,sal from emp where hiredate = (select min(hiredate) from emp);
select ename,hiredate,sal from emp where hiredate <= all(select hiredate from emp);
> any === > min
> all === > max
< any === < max
< all === < min
31.显示所有员工的名字、薪水、奖金,如果没有奖金,暂时显示100.
分析:select ename,sal,comm from emp; —- 没有奖金显示100 函数ifnull
select ename,sal,ifnull(comm,100) from emp;
32.显示出薪水高人的职位。
分析: select job from emp where sal = (select max(sal) from emp);
select job from emp where sal >= all(select sal from emp);
33.查出emp表中所有部门的高薪水和低薪水,部门编号为10的部门不显示。
分析:按部门分组 select deptno,max(sal),min(sal) from emp where deptno<>10 group by deptno;
34.删除10号部门薪水高的员工。
分析:delete from emp where deptno=10 and sal >= all(select sal from emp where deptno=10 ); // MYSQL 不支持
Mysql 规范,修改或者删除 表中记录,不允许在子查询中 查询相同表
ERROR 1093 (HY000): You can’t specify target table ‘emp’ for update in FROM clause
解决方案:临时表
delete from emp where deptno=10 and sal >= all(select t.sal from (select sal from emp where deptno=10) t );
35.将薪水高的员工的薪水降30%。
分析:update emp set sal = sal*0.7 where sal = (select max(sal) from emp); // MYSQL 不支持
引入 临时表
update emp set sal = sal*0.7 where sal = (select t.maxsal from (select max(sal) maxsal from emp) t);
36.查询员工姓名,工资和 工资级别(工资>=3000 为3级,工资>2000 为2级,工资<=2000 为1级)
分析:
select ename,sal, case when sal>=3000 then ‘3级’ when sal>2000 then ‘2级’ else ‘1级’ end 级别 from emp;
语法:case … when … then … when … then … else … end
行列互换
姓名 课程 分数
张三 语文 74
张三 数学 83
张三 物理 93
李四 语文 74
李四 数学 84
李四 物理 94
想变成(得到如下结果):
姓名 语文 数学 物理
—- —- —- —-
李四 74 84 94
张三 74 83 93
——————-
select name,max(case when cource =’语文’ then score else 0 end) from scores group by name;
select name,max(case when cource =’语文’ then score else 0 end) 语文,max(case when cource =’数学’ then score else 0 end) 数学,
max(case when cource =’英语’ then score else 0 end) 英语 from scores group by name;
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11热门文章
常见的移动App Bug??崩溃的测试用例设计如何用Jmeter做压力测试QC使用说明APP压力测试入门教程移动app测试中的主要问题jenkins+testng+ant+webdriver持续集成测试使用JMeter进行HTTP负载测试Selenium 2.0 WebDriver 使用指南