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的子查询练习的更多相关文章

  1. Oracle 之——子查询 DDL DML 集合 及其他数据对象

    Oracle 学习笔记(二) 知识概要: 1.子查询 2.集合操作 3.DML语句操作 4.其他数据库对象 1.子查询 查询工资比SCOTT高的员工信息 1  select * 2  from emp ...

  2. 数据库基础(子查询练习、链接查询(join on 、union)及其练习)

    子查询练习一:查询销售部里的年龄大于35岁的人的所有信息 练习二:将haha表中部门的所有数字代码转换为bumen表中的字符串显示 练习三:将haha表中部门的所有数字代码转换为bumen表中的字符串 ...

  3. oracle之子查询、创建用户、创建表、约束

      子查询                                    子查询可以分为单行子查询和多行子查询   单行子查询           [1] 将一个查询的结果作为另外一个查询的条 ...

  4. Oracle 通过子查询批量添加、修改表数据

    1.通过查询快速创建表 create table test1(id,job,mgr,sal) as () ) ---这是一个分页查询 ok,表创建成功 2.通过查询快速创建视图 create or r ...

  5. Oracle【子查询】

    Oracle子查询:当一个查询依赖于另外一个查询的结果的时候,就需要使用子查询.单行子查询 :筛选条件不明确,需要执行一次查询且查询结果只有一个字段且字段值只有一个.注意:where子句中允许出现查询 ...

  6. Oracle之子查询:Top-N问题

    学习了SQL子查询,遇到个Top-N问题,即:加入有张工资表(这里使用Oracle SCOTT用户的emp表),需要查找工资最高的3个员工信息,以下列格式输出: 乍眼一看,这很简单啊,对sal进行排序 ...

  7. MySQL数据库update更新子查询

    比如: ? 1 2 3 4 UPDATE test.tb_vobile a set a.name = '111 ' WHERE a.id = (select max(id) id from test. ...

  8. Oracle Day04 子查询

    1.子查询解决什么问题: 当一个简单的查询查询不到结果的时候,可以使用子查询来丰富查询的条件以达到显示结果的目的. 子查询的格式: 用一个小括号包含,然后在里面写sql语句2.子查询的注意事项: 1) ...

  9. MySQL数据库(11)----使用子查询实现多表查询

    子查询指的是用括号括起来,并嵌入另一条语句里的那条 SELECT 语句.下面有一个示例,它实现的是找出与考试类别('T')相对应的所有考试事件行的 ID,然后利用它们来查找那些考试的成绩: SELEC ...

随机推荐

  1. python机器学习——使用scikit-learn训练感知机模型

    这一篇我们将开始使用scikit-learn的API来实现模型并进行训练,这个包大大方便了我们的学习过程,其中包含了对常用算法的实现,并进行高度优化,以及含有数据预处理.调参和模型评估的很多方法. 我 ...

  2. python——函数的基本概念

    Python函数认识 数学定义 y = f(x), y是x的函数,x是自变量. python中的函数组成 由若干语句组成的语句块.函数名称.参数列表构成,函数是组织代码的最小单元 像一个黑盒子,我们给 ...

  3. WordPress代码高亮插件SyntaxHighlighter终极使用详解

    子曰: 工欲善其事,必先利其器.作为码农一枚,再加上站长这个已经不再光鲜的称呼,岂能没有一款经济实用.操作简单.而且功能必须强大.样式也必须好看的Wordpress代码高亮插件?!作为一个视代码如生命 ...

  4. Mysql 开启远程连接服务

    Mysql 开启远程连接服务 修改要远程访问的那个用户的 host 为 % use mysql; insert into user (host, user, password) values('%', ...

  5. nyoj 803-A/B Problem

    803-A/B Problem 内存限制:64MB 时间限制:1000ms 特判: No 通过数:2 提交数:4 难度:3 题目描述: 做了A+B Problem,A/B Problem不是什么问题了 ...

  6. nyoj 86-找球号(一)二分法

    86-找球号(一) 内存限制:64MB 时间限制:3000ms 特判: No 通过数:14 提交数:48 难度:3 题目描述: 在某一国度里流行着一种游戏.游戏规则为:在一堆球中,每个球上都有一个整数 ...

  7. 【Java】抽象类和接口详解

    抽象类 一.抽象类的概述 现在请思考一个问题:假如我现在又Dog.Cat.Pig等实例对象,现在我们把它们都抽象成一个Animal类,这个类应该包含了这些Dog.Cat.Pig等实例对象eat的功能, ...

  8. 领扣(LeetCode)最长公共前缀 个人题解

    编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow" ...

  9. 系统信息命令(uname、dmesg、df、hostname、free)

    uname 显示计算机及操作系统相关的信息,uname -a显示全部信息,uname -r内核的发行号,各种信息可以有单独的选项分别指出 [lixn@Fedora24 ~]$ uname -a Lin ...

  10. ThreadLocal线程局部变量的使用

    ThreadLocal: 线程局部变量 一).ThreadLocal的引入 用途:是解决多线程间并发访问的方案,不是解决数据共享的方案. 特点:每个线程提供变量的独立副本,所有的线程使用同一个Thre ...