面试题: 数据库笔试 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,该类中封装了关于数据库连接和操作的方法,各个功能模块在需进行数据库操 ...
随机推荐
- 【BZOJ2789】[Poi2012]Letters 树状数组
[BZOJ2789][Poi2012]Letters Description 给出两个长度相同且由大写英文字母组成的字符串A.B,保证A和B中每种字母出现的次数相同. 现在每次可以交换A中相邻两个字符 ...
- 关于BlockingQueue
1 什么是BlockingQueue 2 BlockingQueue有什么用 3 ArrayBlockingQueue的用途 1 它是一个线程安全的队列 2 它是一个容量固定的队列 3 它为什么叫bl ...
- JavaScript library of crypto standards. 看源码
crypto-js - npm https://www.npmjs.com/package/crypto-js crypto-js/docs/QuickStartGuide.wiki <wiki ...
- 题解 P3805 【【模板】manacher算法】
题解 P3805 [[模板]manacher算法] 我们先看两个字符串: ABCCBA ABCDCBA 显然这两字符串是回文的 然而两个串的对称中心的特性不同,第一个串,它的对称中心在两个C中间,然而 ...
- 您使用的是不受支持的命令行标记 chrome
检查 chrome://flags/#extensions-on-chrome-urls 是否开启 开启了的话就关掉检查 启动chrome的快捷方式是否在目标后有额外的参数 有就删了 在浏览器中输入c ...
- CF A. DZY Loves Hash
A. DZY Loves Hash time limit per test 1 second memory limit per test 256 megabytes input standard in ...
- Bitmaps
核心知识点: 1.Bitmaps是一种特殊的“数据结构”,实质上是一个字符串,操作单元是位. 2.命令: a.setbit:设置值,只能存储0和1,适用二元判断类型 b.getbit:获取值 c.bi ...
- Gemini.Workflow 双子工作流正式上线(支持.NET Core)
接触工作流: 最早接触工作流,是在04年左右,那年,我创造了 Aries 框架的前身第一版框架,另一个同事,创造了工作流的第一版框架. 只是那时候,我并未参与工作流的核心设计,仅仅是帮写了个流程设计器 ...
- python处理txt文件的一种情况
在txt文本中,以换行符作为标记分段处理txt文件中的内容的方法: with open(path, 'r', encoding='utf-8') as f: for line in f: if lin ...
- HTML5响应式导航
HTML5响应式导航HTML5,响应式,jQuery特效,HTML5导航,HTML5响应式导航是一款基于HTML5实现的深灰色响应式导航菜单. 地址:http://www.huiyi8.com/sc/ ...