数据库Oracle的子查询练习
1.写一个查询显示与 Zlotkey 的 在同一部门的雇员的 last name和 hire date,结果中不包括 Zlotkey
--1.写一个查询显示与 Zlotkey 的 在同一部门的雇员的 last name和 hire date,结果中不包括 Zlotkey
select e.department_id from employees e where e.last_name='Zlotkey';
select e.last_name,e.hire_date
from employees e
where e.last_name <> 'Zlotkey'
and e.department_id=(select e.department_id from employees e where e.last_name='Zlotkey');

2.查询每个部门的平均薪水等级
--查询每个部门的平均薪水等级
select e.avgs,gra.gra,e.did
from job_grades gra,(select avg(e.salary) as avgs,e.department_id as did from employees e where e.department_id is not null group by e.department_id) e
where e.avgs between gra.lowest_sal and gra.highest_sal;

3.创建一个查询显示所有其薪水高于平均薪水的雇员的雇员号和名字。按薪水的升序排序。
--创建一个查询显示所有其薪水高于平均薪水的雇员的雇员号和名字。按薪水的升序排序。
select avg(e.salary) from employees e;
select e.salary,e.last_name,e.employee_id
from employees e
where e.salary>(select avg(e.salary) from employees e);

4.写一个查询显示所有工作在有任一雇员的名字中包含一个u的部门的雇员的雇员号和名字。
--写一个查询显示所有工作在有任一雇员的名字中包含一个u的部门的雇员的雇员号和名字。
select e.department_id from employees e where e.last_name like '%u%';
select e.last_name,e.employee_id
from employees e
where e.department_id in(select e.department_id from employees e where e.last_name like '%u%');

5.显示所有部门地点号 (department location ID )是1700的雇员的 last name 、department number和 job ID 。
--显示所有部门地点号 (department location ID )是1700的雇员的 last name 、department number和 job ID 。
select d.department_id from departments d where d.location_id=1700;
select e.last_name,e.department_id,e.job_id
from employees e
where e.department_id in(select d.department_id from departments d where d.location_id=1700);

6.显示每个向 King 报告的雇员的名字和薪水.
--显示每个向 King 报告的雇员的名字和薪水.
select e.employee_id from employees e where e.last_name='King';
select e.last_name,e.salary
from employees e
where e.manager_id in(select e.employee_id from employees e where e.last_name='King');

7.显 示 在 Executive 部 门 的 每 个 雇 员 的 department,number 、last name 和 job ID 。
--显 示 在 Executive 部 门 的 每 个 雇 员 的 department,number 、last name 和 job ID 。
select d.department_id from departments d where d.department_name='Executive';
select e.employee_id,e.last_name,e.job_id
from employees e
where e.department_id=(select d.department_id from departments d where d.department_name='Executive');

8.查询显示所有收入高于平均薪水并且工作在有任一雇员的名个字中带有一个u的部门的雇员的 employee numbers、last_names 和salaries 。
--查询显示所有收入高于平均薪水并且工作在有任一雇员的名个字中带有一个u的部门的雇员的 employee numbers、last_names 和salaries 。
select avg(e.salary) from employees e;
select e.department_id from employees e where e.last_name like '%u%';
select es.employee_id,es.last_name,es.salary
from employees es
where es.salary>(select avg(e.salary) from employees e)
and es.department_id in(select e.department_id from employees e where e.last_name like '%u%');

8.显示那些 job ID 与雇员 141 相同的雇员的名字与 job ID。
--显示那些 job ID 与雇员 141 相同的雇员的名字与 job ID。
select e.job_id from employees e where e.employee_id=141;
select e.last_name,e.job_id
from employees e
where e.job_id=(select e.job_id from employees e where e.employee_id=141);

9.显示 job ID与雇员 141 相同,并且薪水高于雇员 143 的那些雇员。
--显示 job ID与雇员 141 相同,并且薪水高于雇员 143 的那些雇员。
select e.job_id from employees e where e.employee_id=141
select es.salary from employees es where es.employee_id=143;
select ee.salary,ee.last_name
from employees ee
where ee.job_id=(select e.job_id from employees e where e.employee_id=141)
and ee.salary>(select es.salary from employees es where es.employee_id=143);

10.显示所有其最低薪水大于 部门 50 的最低薪水的部门号和最低薪水。
--显示所有其最低薪水大于 部门 50 的最低薪水的部门号和最低薪水。
select min(e.salary) from employees e where e.department_id=50;
select min(ee.salary),ee.department_id
from employees ee
where ee.department_id is not null
group by ee.department_id
having min(ee.salary)>(select min(e.salary) from employees e where e.department_id=50)
order by ee.department_id;

11.显示工作岗位不是 IT_PROG 的雇员,并且这些雇员的的薪水少于 IT_PROG 工作岗位的雇员的 ID、名字、工作岗位和薪水。
--显示工作岗位不是 IT_PROG 的雇员,并且这些雇员的的薪水少于 IT_PROG 工作岗位的雇员的 ID、名字、工作岗位和薪水。
select e.salary from employees e where e.job_id='IT_PROG';
select e.employee_id,e.last_name,e.job_id,e.salary
from employees e
where e.job_id <> 'IT_PROG'
and e.salary<any(select e.salary from employees e where e.job_id='IT_PROG')

<ALL 意思是小于最小值。>ALL 意思是大于最大值。
ANY 与 ALL 的区别:
ANY: >ANY 表示至少大于一个值,即大于最小值。
ALL: >ALL 表示大于每一个值,既大于最大值。
数据库Oracle的子查询练习的更多相关文章
- Oracle 之——子查询 DDL DML 集合 及其他数据对象
Oracle 学习笔记(二) 知识概要: 1.子查询 2.集合操作 3.DML语句操作 4.其他数据库对象 1.子查询 查询工资比SCOTT高的员工信息 1 select * 2 from emp ...
- 数据库基础(子查询练习、链接查询(join on 、union)及其练习)
子查询练习一:查询销售部里的年龄大于35岁的人的所有信息 练习二:将haha表中部门的所有数字代码转换为bumen表中的字符串显示 练习三:将haha表中部门的所有数字代码转换为bumen表中的字符串 ...
- oracle之子查询、创建用户、创建表、约束
子查询 子查询可以分为单行子查询和多行子查询 单行子查询 [1] 将一个查询的结果作为另外一个查询的条 ...
- Oracle 通过子查询批量添加、修改表数据
1.通过查询快速创建表 create table test1(id,job,mgr,sal) as () ) ---这是一个分页查询 ok,表创建成功 2.通过查询快速创建视图 create or r ...
- Oracle【子查询】
Oracle子查询:当一个查询依赖于另外一个查询的结果的时候,就需要使用子查询.单行子查询 :筛选条件不明确,需要执行一次查询且查询结果只有一个字段且字段值只有一个.注意:where子句中允许出现查询 ...
- Oracle之子查询:Top-N问题
学习了SQL子查询,遇到个Top-N问题,即:加入有张工资表(这里使用Oracle SCOTT用户的emp表),需要查找工资最高的3个员工信息,以下列格式输出: 乍眼一看,这很简单啊,对sal进行排序 ...
- MySQL数据库update更新子查询
比如: ? 1 2 3 4 UPDATE test.tb_vobile a set a.name = '111 ' WHERE a.id = (select max(id) id from test. ...
- Oracle Day04 子查询
1.子查询解决什么问题: 当一个简单的查询查询不到结果的时候,可以使用子查询来丰富查询的条件以达到显示结果的目的. 子查询的格式: 用一个小括号包含,然后在里面写sql语句2.子查询的注意事项: 1) ...
- MySQL数据库(11)----使用子查询实现多表查询
子查询指的是用括号括起来,并嵌入另一条语句里的那条 SELECT 语句.下面有一个示例,它实现的是找出与考试类别('T')相对应的所有考试事件行的 ID,然后利用它们来查找那些考试的成绩: SELEC ...
随机推荐
- Python 面向对象之一 类与属性
Python 面向对象之 类与属性 今天接触了一下面向对象,发现面向对象和之前理解的简直就是天壤之别,在学Linux的时候,一切皆文件,现在学面向对象了,so,一切皆对象. 之前不是一直在学的用面向函 ...
- [java] 计算时间复杂度
一.精算: 1.所有的声明,都不计时间: 2.赋值语句占1个时间单位(下称:单位),比如sum=0: 3.return占1个单位,比如,reeturn sum. 我怀疑范围一个链表头,不止占1 ...
- nyoj 214-单调递增子序列(二) (演算法,PS:普通的动态规划要超时)
214-单调递增子序列(二) 内存限制:64MB 时间限制:1000ms Special Judge: No accepted:11 submit:35 题目描述: 给定一整型数列{a1,a2..., ...
- CMake 常用函数记录
1.cmake_minunum_required(VERSION 2.6) #cmake 最低要求版本号 2.PROJECT(projectname [CXX] [C] [Java]) #这个指令隐式 ...
- 防火墙和SELinux复习02
1.防火墙 防火墙主要起隔离作用,严格的过滤入站,允许出站.又分为硬件防火墙和软件防火墙,硬件防火墙主要保护一群机器,而软件防火墙主要保护本机. 防火墙相关命令:systemctl status fi ...
- mysql的属性zerofill
一.字段中zerofill属性的类似定义方式 SQL语句:字段名 int(M) zerofill 二.zerofill属性的作用 1.插入数据时,当该字段的值的长度小于定义的长度时,会在该值的前面补上 ...
- 【论文阅读】Learning Dual Convolutional Neural Networks for Low-Level Vision
论文阅读([CVPR2018]Jinshan Pan - Learning Dual Convolutional Neural Networks for Low-Level Vision) 本文针对低 ...
- scrapy抓取国家社科基金项目数据库
1.明确任务 目标网站:http://fz.people.com.cn/skygb/sk/index.php/Index/seach 抓取任务:抓取近五年某关键词(例如"能源".” ...
- python的Requests库的使用
Requests模块: Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库.它比 urllib 更加方便,可以节约我们大量 ...
- SpringMVC 请求参数绑定
什么是请求参数绑定 请求参数格式 默认是key/value格式,比如:http:xxxx?id=1&type=2 请求参数值的数据类型 都是字符串类型的各种值 请求参数值要绑定的目标类型 Co ...