前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【MySQL】学习和总结使用列子查询查询员工工资信息

【MySQL】学习和总结使用列子查询查询员工工资信息

作者头像
用户10920432
发布2024-03-21 10:11:09
740
发布2024-03-21 10:11:09
举报

子查询

  • 概念:SQL语句中嵌套SELECT语句,称为嵌套查询,又称子查询.

SELECT * FROM t1 WHERE column1 = ( SELECT column1 FROM 12);

子查询外部的语句可以是INSERT / UPDATE / DELETE / SELECT 的任何一个.

子查询类型

根据结果类型分类

列子查询

  • 子查询返回的结果是一列 (可以是多行),这种子查询称为:列子查询.
  • 常用操作符: IN , NOT IN , ANY , SOME , ALL

操作符

描述

IN

在指定的集合范围内,多选一

NOT IN

不在指定集合范围内

ANY

子查询返回列表中,有任意一个满足即可

SOME

与ANY等同,使用SOME的地方都可以使用ANY

ALL

子查询返回列表的所有值都必须满足


Exercises1

代码语言:javascript
复制
-- 1.查询 "销售部" 和 "市场部" 的所有员工信息

-- a. 查询 '销售部' 和 '市场部' 的id
select id from dept where name = '销售部' or name = '市场部';

-- b. 根据部门 id ,查询员工信息
select * from emp where dept_id in (select id from dept where name = '销售部' or name = '市场部');

注意: 查询两个部门的 id , 用 or 连接, 而不是 and ; 因为 and 取的是 两个部门的交集 ,显然是空集.

Exercises2
代码语言:javascript
复制
-- 查询比 财务部 所有人工资都高的员工信息
-- a 查询所有 财务部 人员工资
select id from dept where name = '财务部'; -- 先查询部门

select salary from emp where dept_id = (select id from dept where name = '财务部'); -- 查询财务部所有员工工资

-- b 查询比 财务部 所有人工资都高的员工信息
update emp set salary = 4800 where id = 8;

select * from emp where salary > all( select salary from emp where dept_id = (select id from dept where name = '财务部') );

Exercises3

代码语言:javascript
复制
-- 3. 查询比研发部其中任意一人工资高的员工信息
select salary from emp where dept_id = (select id from dept where name = '研发部');

select * from emp where salary > any(select salary from emp where dept_id = (select id from dept where name = '研发部'));
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-03-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 子查询
    • 子查询类型
      • 根据结果类型分类
        • 列子查询
          • Exercises1
            • Exercises3
            相关产品与服务
            云数据库 MySQL
            腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档