码迷,mamicode.com
首页 > 其他好文 > 详细

DML语句(七) -- 子查询

时间:2018-06-22 22:47:53      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:含义   from   let   语句   姓名   多列   支持   update   rom   

一、含义

嵌套在其他语句内部的 select 语句称为子查询或内查询,

外面的语句可以是 insert、update、delete、select 等,一般 select 作为外面语句较多

外面如果为 select 语句,则此语句称为2外查询或主查询

 

二、分类

1、按出现位置

  select 后面

    仅仅支持标量子查询

  from后面

    表子查询

  where 或 having 后面

    标量子查询

    列子查询

    行子查询

  exists 后面(结果不重要,判断是否有值)

    标量子查询

    列子查询

    行子查询

    表子查询

2、按结果集的行列

  标量子查询(单行子查询):结果集为一行一列

  列子查询(多行子查询):结果集为多行一列

  行子查询:结果集为多行多列

    使用的较少,应用场景具有偶合性

  表子查询(嵌套子查询):结果集为多行多列

 

三、示例

where 或 having 后面

1、标量子查询

案例:查询最低工资的员工姓名和工资

①最低工资
SELECT MIN(salary) FROM employee

②查询员工的姓名和工资,要求工资 = ①
SELECT last_name, salary
FROM employees
WHERE salary = (
  SELECT MIN(salary) FROM emplaoyees
);

2、列子查询
案例:查询所有是领导的员工姓名
①查询所有员工的 manager_id
SELECT manager_id
FROM emlioyees

②查询姓名,employee_id 属于①列表的一个
SELECT last_name
FROM employees
WHERE employee_id IN(
  SELECT manager_id
  FROM employees
);

 

DML语句(七) -- 子查询

标签:含义   from   let   语句   姓名   多列   支持   update   rom   

原文地址:https://www.cnblogs.com/xifengbuqi/p/9215548.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!