• MySQL------ 子查询


      

    一、子查询

      含义:出现在其他语句中的select语句,称为子查询或内查询

      分类:按子查询出现的位置:

          select后面:仅仅支持标量子查询

          from后面:支持表子查询

          where或having后面:标量子查询(单行)、列子查询(多行)、行子查询

          exists后面(相关子查询):表子查询

            按结果集的行列数不同:标量子查询(结果集只有一行一列)、列子查询(结果集只有一列多行)、行子查询(结果集有一行多列)、表子查询(结果集一般为多行多列)

    二.where或having后面

    1、标量子查询(单行)

        #案例1:谁的工资比Abel高?
        SELECT first_name,last_name,salary
        FROM employees
        WHERE salary>(
        SELECT salary
        FROM employees
        WHERE last_name = 'Abel' );

    #非法使用标量子查询 

       标量子查询的自身所得到的结果要正确的,值为单一的,否则都造成了非法标量子查询

    2、列子查询(多行)

        #案例1:返回loaction_id 是1400或1700的部门中的所有员工姓名

        SELECT department_id,last_name
        FROM employees
        WHERE department_id IN(
        SELECT DISTINCT department_id
        FROM departments
        WHERE location_id IN(1400,1700)
        )
        ORDER BY department_id ASC;

    3、行子查询

        #案例:查询员工编号最小并且工资最高的员工信息
        SELECT *
        FROM employees
        WHERE (employee_id,salary) = (
        SELECT MIN(department_id),MAX(salary)
        FROM employees );

    特点:

      ①子查询放在小括号内

      ②子查询一般放在条件的右侧

      ③标量子查询,一般搭配着单行操作符使用(< > <= >= <>)

               列子查询,一般搭配着多行操作符使用(in、 any/some、 all)

      ④子查询的执行优先于主查询执行,主查询的条件用到了子查询的

    三、select 后面

      

  • 相关阅读:
    2015年校园招聘之腾讯(数据挖掘)笔试面试题目
    VBoxGuestAdditions.iso下载地址
    软件測试自学指南---从入门到精通
    C语言指针的初始化和赋值
    使用Jquery+EasyUI 进行框架项目开发案例解说之二---用户管理源代码分享
    完美攻略心得之圣魔大战3(Castle Fantisia)艾伦希亚战记(艾伦西亚战记)包含重做版(即新艾伦希亚战记)
    DatabaseMetaData的用法(转)
    Thread-safety with regular expressions in Java
    大象,大象
    使用 Java 实现 Comet 风格的 Web 应用
  • 原文地址:https://www.cnblogs.com/evething-begins-with-choice/p/12964293.html
Copyright © 2020-2023  润新知