面试题: 数据库笔试 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
);
面试题: 数据库笔试 sql操作 已看 上课的练习题50sql的更多相关文章
- 面试题:3年工作经验 已看1 有用 memcache和redis有什么区别
此内容偏中高级,适合有三年经验者. 1. java中wait和sleep有什么区别?多线程条件下如何保证数据安全? 答:最大区别是等待时wait会释放锁(乐观锁),而sleep会一直持有锁 ...
- 面试题: 数据库 oracle数据库 已看1 意义不大 有用
Oracle数据库面试题总结 2017年04月27日 22:41:44 阅读数:9271 1.SQL语句分类 DQL(数据查询语言)select DML(数据操作语言)insert.delete.up ...
- .NET面试题解析(11)-SQL语言基础及数据库基本原理
系列文章目录地址: .NET面试题解析(00)-开篇来谈谈面试 & 系列文章索引 本文内容涉及到基本SQL语法,数据的基本存储原理,数据库一些概念.数据优化等.抱砖引玉,权当一个综合复习! ...
- 常用SQL操作(MySQL或PostgreSQL)与相关数据库概念
本文对常用数据库操作及相关基本概念进行总结:MySQL和PostgreSQL对SQL的支持有所不同,大部分SQL操作还是一样的. 选择要用的数据库(MySQL):use database_name; ...
- 数据库笔试面试题库(Oracle、MySQL等)
数据库笔试面试题库(Oracle.MySQL等) 版权声明:版权所有,欢迎分享本文,转载请保留出处,否则追究法律责任,谢谢合作. 注:本文将持续更新,可关注作者微信公众号以便获得最新笔试面试资料. ⊙ ...
- 面试题: 数据库 sql优化 sql练习题 有用 学生表,课程表,成绩表,教师表 练习
什么是存储过程?有哪些优缺点? 什么是存储过程?有哪些优缺点? 存储过程就像我们编程语言中的函数一样,封装了我们的代码(PLSQL.T-SQL). 存储过程的优点: 能够将代码封装起来 保存在数据库之 ...
- .NET面试题解析(9)-SQL语言基础及数据库基本原理
见面试题 1. 索引的作用?她的优点缺点是什么? 2. 介绍存储过程基本概念和 她的优缺点? 3. 使用索引有哪些需要注意的地方? 4. 索引碎片是如何产生的?有什么危害?又该如何处理? 5. 锁的目 ...
- 总结一些关于操作数据库是sql语句还是存储过程问题
总结一些关于操作数据库是sql语句还是存储过程问题 程序中,你跟数据的交互,需要向数据库拿数据.更改数据库的数据等,这些操作,本身不是程序完成的,而是程序发命令给数据库去做的,不管是通过sql语句方式 ...
- C#连接SQL Server数据库进行简单操作
环境:VS2010 + SqlServer 2008 首先,按照面向对象的程序设计思想,设计一个数据库操作工具类MyTool.cs,该类中封装了关于数据库连接和操作的方法,各个功能模块在需进行数据库操 ...
随机推荐
- Codeforces 390E Inna and Large Sweet Matrix 树状数组改段求段
题目链接:点击打开链接 题意:给定n*m的二维平面 w个操作 int mp[n][m] = { 0 }; 1.0 (x1,y1) (x2,y2) value for i : x1 to x2 for ...
- bash学习记录
bash: 管理员: 提示符# 普通用户:提示符$ 环境变量 A=3(变量是指内存空间,A指的是内存空间的名称-变量标示符) PS1 \u@\h:\w\$ \u用户名 \h主机名 \w工作目录的 ...
- iOS 应用发布
本文转载至 http://blog.csdn.net/ysy441088327/article/details/7833579 苹果为广大的开发者提供了一个很好的应用生态环境 参考资料: 1:如何向 ...
- 使用@Scheduled注解编写spring定时任务
import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframewor ...
- 用CMakeLists.txt组织工程
1 一个工程会有多个CMakeLists.txt,如何组织这些CMakeLists.txt来构建一个工程? 1.1 最外层一个CMakeLists.txt,是总的CMakeList.txt,在这个里 ...
- NotePad++ 正则表达式替换
NotePad++ 正则表达式替换 高级用法 [转] - aj117 - 博客园 https://www.cnblogs.com/tibit/p/6387199.html const getQAPar ...
- 洛谷 4568 [JLOI2011] 飞行路线
题目戳这里 一句话题意: 有n个点,m条边的有向图,最多可以把k条边变为0,求从起点到终点最短距离. Solution 首先看到这题目,感觉贼难,看起来像DP,貌似也有大佬这么做,但鉴于本蒟蒻思维能力 ...
- ES6 Set数据结构
Set ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. const s = new Set(); // const声明一个只读的常量.一旦声明,常量的值就不能 ...
- python之tkinter_2
关于tkinter的组件介绍,这篇博客很详细: https://www.cnblogs.com/aland-1415/p/6849193.html tkinter is to make interfa ...
- iOS审核策略重磅更新:Guideline 2.1批量拒审
自从进入了2018年,大量应用在AppStore提交审核后,都直接给大家回复了个新春大礼包 Guideline 2.1 - Information Needed. 而大部分的应用,特别是金融类相关AP ...