MySQL学习之嵌套查询(七)

数据准备:

(1)部门表department

(2)员工表staff

一、概述

      在SQL 语言中,一个SELECT-FROM-WHERE语句称为一个查询块。将一个查询块嵌套在另一个查询块的WHERE子句或HAVING短语的条件中的查询称为嵌套查询。

二、类型

1、带有IN 谓词的子查询

eg:查询与小王在同一个部门的员工

步骤:

(1)先查询小王所在部门:select dep_id from staff where name='小王';     结果为dep_id=102;

(2)查询dep_id=102的所有员工:select * from staff where dep_id=102;

(3)将第一步查询嵌入到第二步查询的条件中

2、带有比较运算符的子查询

eg:查询大于等于平均年龄的员工

3、带有ANY(SOME) 或 ALL谓词的子查询

(>,>=,<,<=,=)ANY(大于|大于等于|小于|小于等于|等于)子查询结果中的某个值
(>,>=,<,<=,=)ALL(大于|大于等于|小于|小于等于|等于)子查询结果中的所有值
  !=(或<>)ANY不等于子查询结果中的某个值
  !=(或<>)ALL不等于子查询结果中的任何一个值

     子查询返回单值时可用比较运算符,但返回多值时要用ANY或ALL谓词修饰符。

eg:查询比技术部所有员工平均年龄小的员工信息

4、带有EXISTS谓词的子查询

     不返回任何数据,只产生逻辑真值"true"或逻辑假值"false"。若内层查询结果非空,则外层的WHERE子句返回真值,否则返回假值。

eg:查询技术部的所有员工信息

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值