数据库子查询

news/2025/2/7 7:29:49/

下面这篇文章简单介绍子查询。

子查询指在一个select语句中还嵌套另一个select语句。


1、子查询的语法

SELECT   select_list

FROM    table

WHERE  expr operator

                    (SELECT  select_list

                     FROM             table);

2、使用子查询

SELECT last_name

FROM   employees

WHERE  salary >

               (SELECT salary

                FROM   employees

                WHERE  last_name = 'Abel');

上面的结果是输出比last_name为Abel的职员的工资高的职员的last_name.

3、单行子查询

SELECT last_name, job_id, salary

FROM   employees

WHERE  job_id = 

                (SELECT job_id

                 FROM   employees

                 WHERE  employee_id = 141)

AND    salary >

                (SELECT salary

                 FROM   employees

                 WHERE  employee_id = 143);

上面的结果是输出job_id等于employee_id为141的职员的job_id并且工资大于employee_id为143的职员的工资的职员的last_name, job_id, salary

4、多行子查询

SELECT employee_id, last_name, job_id, salary

FROM   employees

WHERE  salary < ANY

                    (SELECT salary

                     FROM   employees

                     WHERE  job_id = 'IT_PROG')

AND    job_id <> 'IT_PROG';

上面的结果是输出工资比其中一个job_id为'IT_PROG'的工资小并且job_id不等于'IT_PROG'的职员的employee_id, last_name, job_id, salary

SELECT employee_id, last_name, job_id, salary

FROM   employees

WHERE  salary < ALL

                    (SELECT salary

                     FROM   employees

                     WHERE  job_id = 'IT_PROG')

AND    job_id <> 'IT_PROG';

上面的结果是输出工资比任何一个job_id为'IT_PROG'的工资小并且job_id不等于'IT_PROG'的职员的employee_id, last_name, job_id, salary。这里的<ALL与上面题目的<ANY区别就是<ANY是比其中一个小就可以,可以是比最大工资小而不用比最小工资小。而<ALL就是比最小工资小。


练习内容:

1. 写一个查询显示与 Zlotkey 在同一部门的雇员的 last name 和 hire date,结果中不包括 Zlotkey。

select last_name,hire_date
from employees
where department_id=(select department_idfrom employeeswhere last_name='Zlotkey')
and last_name<>'Zlotkey';

2. 创建一个查询显示所有其薪水高于平均薪水的雇员的雇员号和名字。按薪水的升序排序。

TIPS:用到employees表

select employee_id,last_name,salary
from employees
where salary>(select AVG(salary)from employees)
order by salary;

3.写一个查询显示所有工作在有任一雇员的名字中包含一个 u 的部门的雇员的雇员号和名字。保存 SQL 语句到一个名为 lab6_3.sql 的文本文件中,运行该查询。

TIPS:用到employees表;使用in或者=some或者=any(some与any是同义词)。

select employee_id,last_name
from employees
where department_id=any(select department_idfrom employeeswhere last_name like '%u%'or first_name like '%u%;);

4. 显示所有部门地点号 (department location ID ) 是 1700 的雇员的 last name、department number 和 job ID。

TIPS:用到employees表和departments表。

select distinct last_name,department_id,job_id
from employees
where department_id=any(select department_idfrom departmentswhere location_id=1700);


http://www.ppmy.cn/news/555377.html

相关文章

【golang中的变量 全局/局部/4中声明】

目录 变量变量的分析1.变量的创建的四种形式1.1总结1.2第一种 var a int 声明1.3 第二种 var a string "XXXX" 初始化1.4第三种 var a "XXXX"1.5第四种 a : XXXX 2.一次性声明多个变量3.一次初始化多个变量3.1交换值 4.全局变量--局部变量5. 声明和初始化…

数据库与身份认证

一、目标 能够知道如何配置MySQL数据库环境能够认识并使用常见的SQL语句操作数据库能够在Express中操作MySQL数据库能够了解Session的实现原理能够了解JWT的实现原理 二、目录 数据库的概念安装并配置MySQLMySQL的基本使用在Express中操作MySQL前后端的身份认证 1.数据库的基…

数码摄影机里回放的照片展示模板

在我们一起编的网站里&#xff0c;不同类型的照片展示模板有很多&#xff0c;下面小编来给大家介绍&#xff0c;一款一直在数码摄像机里回放图片的相册模板&#xff0c;整个模板看起来节奏适当&#xff0c;都是用数码相机照出来的图片&#xff0c;里面的效果都很不错。一直都是…

Capture One Pro 12.0.3 中文特别版 Mac 专业数码摄影师RAW转换照片编辑软件

这是一款Mac平台的RAW转换器和照片编辑软件&#xff0c;是出色的 raw 格式图像转换器&#xff0c;凭借对主流高端相机的支持&#xff0c;能够准确渲染图像色彩以及惊人的图像细节。它将灵活的数字资产管理、所有必需的调整工具以及快速的响应性整合到一款可定制的集成解决方案中…

[转]关于数码摄影的几个误区

转自色影无忌 http://article.xitek.com/showarticle.php?id2562 关于数码摄影的几个误区 作者&#xff1a;d100fans 发表时间&#xff1a;2005.5.6 1 数码单反相机不适合风景照   这是一个经久不衰的热门争议问题。这个问题的要害在于你要多好的风景照&#xff1f;一旦…

Matplotlib---热力图

1. 热力图 imshow 是 Matplotlib 库中一个函数&#xff0c;主要用于在 Python 中显示图像。它的完整参数列表如下&#xff1a; matplotlib.pyplot.imshow(X, cmapNone, normNone, aspectNone, interpolationNone, alphaNone, vminNone, vmaxNone, originNone, extentNone, sh…

数码摄影入门:焦距是什么?

焦距是摄影师在拍摄时必须掌握的一个重要参数&#xff0c;但是对于新手来说往往不知道焦距意味着什么&#xff0c;只是一味地将焦距配备齐全。焦距既是一个需要经验来驾驭的参数&#xff0c;也是一个很好理解其作用的参数。今天就为大家讲解焦距到底是什么。 焦距就是镜头中心点…

数码摄影入门之七 用光的艺术

数码摄影入门之七 用光的艺术 说白了&#xff0c;玩摄影就是在玩光线。就如同素描&#xff0c;光线的表现力就是一幅好pp的“魂”下面先讨论几个概念&#xff1a;任何一种光线都存在着三个要素&#xff0c;即强度、方向和色调。 光的强度 强度描述的是光线的强弱程度&#xff0…