oracle习题及答案
更新时间:2024-05-04 16:38:01 阅读量: 综合文库 文档下载
- Oracle面试题及答案推荐度:
- 相关推荐
1. 查询工资大于12000的员工姓名和工资
Select last_name||' '||first_name,salary from employees where salary >12000;
2. 查询员工号为176的员工的姓名和部门号
Select last_name||' '||first_name,department_id from employees where employee_id=176;
3. 选择工资不在5000到12000的员工的姓名和工资
Select last_name||' '||first_name,salary from employees where salary not between 5000 and 12000;
4. 选择雇用时间在1998-02-01到1998-05-01之间的员工姓名,job_id和雇用时间
Select last_name||' '||first_name,job_id,hire_date from employees where hire_date between '1-2月-98' and '1-5月-98';
5. 选择在20或50号部门工作的员工姓名和部门号
Select last_name||' '||first_name,department_id from employees where department_id in (20,50);
6. 选择在1994年雇用的员工的姓名和雇用时间
Select last_name||' '||first_name,hire_date from employees where hire_date like '?';
7. 选择公司中没有管理者的员工姓名及job_id
Select last_name||' '||first_name,job_id from employees where Manger_id is null;
8. 选择公司中有奖金的员工姓名,工资和奖金
Select last_name||' '||first_name,salary,commission_pct from employees where commission_pct is not null;
9. 选择员工姓名的第三个字母是a的员工姓名
Select last_name||' '||first_name from employees where last_name||' '||first_name like '___a%';
10. 选择姓名中有字母a和e的员工姓名 Select
last_name||'
'||first_name
from
employees
where
last_name||first_name like '%a%e%' or last_name||first_name like '%e%a%';
多表查询
11. 显示所有员工的姓名,部门号和部门名称。
Select e.last_name,d.department_id,d.department_name from employees e , departments d where (e.department_id=d.department_id); 12. 查询90号部门员工的job_id和90号部门的location_id
Select e.job_id,d.location_id from employees e, departments d where e.department_id=d.deparement_id and d.department_id=90; 13. 选择所有有奖金的员工的
last_name , department_name , location_id , city
Select e.last_name , d.department_name , l.location_id , city from employees
e,departments
d,locations
l
where
e.department_id=d.department_id AND d.location_id=l.location_id
AND commission_pct is not null;
14. 选择在Toronto工作的员工的
last_name , job_id , department_id , department_name
Select e.last_name , e.job_id , d.department_id , d.department_name from
employees
e,departments
d
,locations
l
where
e.department_id=d.department_id AND d.location_id=l.location_id AND l.city='Toronto';
15. 选择所有员工的姓名,员工号,以及他的管理者的姓名和员工号,结果类似于下面的格式 employees kochhar Emp# 101 manager king Mgr# 100 Select e.employee_id \\\\from employees e,employees d where e.manager_id=d.employee_id(+);
6. 查询各部门员工姓名和他们的同事姓名,结果类似于下面的格式 Department_id 20 Last_name fay colleague hartstein Select e.department_id \d.last_name \e.last_name \from employees e join employees d on(d.department_id=e.department_id) d.last_name<>e.last_name;
where
分组查询
16. 组函数处理多行返回一行(true) 17. 组函数不计算空值( false)
18. where子句在分组之前对检索进行过滤 ( true) 19. 查询公司员工工资的最大值,最小值,平均值,总和
Select max(salary),min(salary),avg(salary),sum(salary) from employees; 20. 查询各job_id的员工工资的最大值,最小值,平均值,总和 Select max(salary),min(salary),avg(salary),sum(salary) from employees group by job_id;
21. 选择具有各个job_id的员工人数
Select job_id,count(*) from employees group by job_id; 22. 查询员工最高工资和最低工资的差距(DIFFERENCE) Select max(salary)-min(salary) \23. 查询各个管理者手下员工的最低工资,其中最低工资不能低于6000,没有管理者的员工不计算在内
Select manager_id,min(salary) from employees where manager_id is not null group by manager_id having min(salary) >=6000;
24. 查询所有部门的名字,location_id,员工数量和工资平均值 Select
d.department_name,d.location_id,count(e.employee_id),avg(e.salary) from
employees
e,departments
group
d
where by
e.department_id(+)=d.department_id
d.location_id,d.department_name;
25. 查询公司的人数,以及在1995-1998年之间,每年雇用的人数,结果类似下面的格式
total 30 1995 3 1996 4 1997 6 1998 7 Select count(employee_id),to_char(hire_date,'yyyy') \from employees where to_char(hire_date,'yyyy') between 1995 and 1998 group by to_char(hire_date,'yyyy') order by y;
Select
子查询
26. 查询和zlotkey相同部门的员工姓名和雇用日期
Select last_name,hire_date,department_id from employees where department_id=(select
department_id
from
employees
where
lower(last_name)='zlotkey') ;
27. 查询工资比公司平均工资高的员工的员工号,姓名和工资。 Select
employee_id,last_name,salary
from
employees
where
salary>(select avg(salary) from employees );
28. 查询和姓名中包含字母u的员工在相同部门的员工的员工号和姓名
Select employee_id,last_name,department_id from employees where department_id =any (select department_id from employees where lower(last_name) like '%u%');
29. 查询在部门的location_id为1700的部门工作的员工的员工号,
department_id和job_id
Select employee_id,department_id,job_id from employees where department_id = any (select department_id from departments where location_id=1700);
30. 查询管理者是king的员工姓名和工资
Select last_name,salary from employees where manager_id=(select employee_id from employees where last_name='King');
创建和管理表 31. 创建表dept name id name Create table dept
( id Number(7),name varchar(25));
Null? type Number(7) Varchar2(25) 32. 将表departments中的数据插入表dept中 Insert into dept(
SELECT department_id, department_name FROM departments);
33. 创建表emp name Null? type id First_name Last_name Dept_id Number(7) Varchar2(25) Varchar2(25) Number(7) Create table emp (id Number(7),First_name varchar(25),Last_name varchar(25),Dept_id number(7)); 34. 将列Last_name的长度增加到50
Alter table emp modify (last_name varchar2(50)); 35. 查询数据字典视图user_tables检查刚才的操作 Select * from user_tables;
36. 根据表employees创建employees2 Create table employees2 as select * from employees; 37. 删除表emp Drop table emp;
38. 将表employees2重命名为emp Rename employees2 to emp;
39. 在表dept和emp中添加新列test_column,并检查所作的操作 Alter table emp add(test_column varchar(10)); 单行函数 40. 显示系统时间
Select to_char(sysdate 'DD-MON-YYYY')from dual;
41. 查询员工号,姓名,工资,以及工资提高百分之20%后的结果(new salary)
Select employee_id,last_name||' '||first_name,salary,salary*1.2 newsalary from employees;
42. 将员工的姓名按首字母排序,并写出姓名的长度(length) Select
last_name,length(last_name)
from
employees
order
by
substr(last_name,1,1) desc;
43. 查询各员工的姓名,并显示出各员工在公司工作的月份数(worked_month)。 Select
last_name||\
'||first_name,months_between(sysdate,hire_date)
worked_month from employees;
44. 查询员工的姓名和工资,按下面的形式显示
Last_name king employees;
SALARY $$$$$$$$$$24000 Select lower(last_name) \\from
45. 查询员工的姓名,以及在公司工作的月份数(worked_month),并按月份数降序排列 Select
last_name||'
'||first_name,months_between(sysdate,hire_date)
worked_month from employees order by worked_month desc; 46. 做一个查询,产生下面的结果
Dream Salary King earns $24000 monthly but wants $72000 Select 'King'||' earns '||lpad(salary,6,'$')||' monthly but wants '||lpad(salary*3,6,'$') \Dream Salary\47. 做一个查询,产生下面的结果add_month(6)+4 Last_name king Hire_date 17-jun-87 reiew Monday,the twenty-first of December , 1987 Select
lower(last_name)
\,MONTH,YYYY') \9做一个查询,产生下面的结果
Employees_and_their_salarys King*************************** 其中每一个*代表一千元。 Select
rpad(last_name,salary/1000+length(last_name),'$')
from
employees where last_name like 'King'; 48. 使用decode函数,按照下面的条件: job grade AD_PRES A ST_MAN B
IT_PROG C SA_REP D ST_CLERK E 产生下面的结果
Last_name king Select last_name,job_id,
Job_id AD_PRES Grade A Decode (job_id ,'AD_PRES',' A ', 'ST_MAN',' B ', 'IT_PROG',' C ', 'SA_REP',' D ' ,
'ST_CLERK',' E ',') Grade from employees; 49. 将第9题的查询用case函数再写一遍。 Select last_name,job_id,
Case job_id when 'AD_PRES' then ' A ' When 'ST_MAN' then ' B ' When 'IT_PROG' then' C ' When 'SA_REP' then ' D ' When 'ST_CLERK' then ' E ' end \ from employees;
正在阅读:
oracle习题及答案05-04
梦想中的花园作文500字07-15
运动会100米广播稿02-23
2014年奇瑞品牌汽车在上海市保有量分析年报 - 图文10-07
酒店服务员02-15
(新资讯)荥阳市推荐报考河南成人高考院校有哪些?【分享推荐】_s03-08
20120927-验收管理办法(2012年版)改-附件 - 图文06-23
2018届河北省衡水中学高三上学期八模考试理综试题-word04-05
财经法规与会计职业道德考点精讲及归类题库05-30
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 习题
- 答案
- oracle
- 高考英语作文技巧 - 图文
- 摄影知识集成汇总
- 梅花在园林造景中的应用
- 财务会计题库 Transaction Analysis
- Netmate mini 精密空调系列操作设置说明( 凝智logo)
- 2011年安徽中考语文试卷及答案
- 投行excel技巧
- 旅游资源评价报告
- 房屋资料报验及其附表
- 08-09第二学期复变函数积分变换复习卷(答案)
- 湖北省县级综合气象业务理论学习综合测试(二) - 试卷 + 答案
- 中小企业内部控制论文定稿
- 小学四年级语文(下册)单元测试题(三) (2)
- 最新政府采购法实施条例知识竞赛答案2015
- 潜艇作战趣事 - 图文
- 文化地理
- 江苏省盐城市2018年中考英语试题(附答案)
- 城市渍水论文(改)
- 管理沟通 复习重点
- 应用文改错题