zoukankan      html  css  js  c++  java
  • 006 子查询

    本质:

    sql查询的结果是一个结果集,无论如何这个结果集就有四种情况.

    [1]一个数值

    [2]一列值

    [3]一条记录(一行)

    [4]多行多列

    那么,我们就可以将子查询视为一种结果集的嵌套.

    这样,使用子查询和我们之前的sql根本没有任何区别.


    只要我们可以理解子查询的结果集的原理,我们就能使用子查询完成各种查询的嵌套.

    但是过多的子查询会使sql的效率变得很低,这也就是我后面会讨论的sql的优化问题.


    子查询的命名:

    标量子查询(一个数值)

    列子查询(一列多行)

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

    表子查询(多行多列)


    标量子查询

    SELECT last_name,employee_id,salary
    FROM employees
    WHERE salary>(

    SELECT AVG(salary)
    FROM employees
    );

    我们的子查询的结果为一个数值.


    列子查询:

      

    SELECT last_name,employee_id
    FROM employees
    WHERE department_id IN(
      SELECT DISTINCT department_id
      FROM employees
      WHERE last_name LIKE '%u%'
    );

    结果集返回一个列值.

    从上面的内容可以看出,我们使用子查询只要知道结果集,那么就可以使用子查询.

  • 相关阅读:
    哈希表
    c++中的虚函数
    struct并不报错
    c风格的字符串
    动态数组
    常量指针和指针常量
    关于struct和typedef struct
    常量成员函数
    关于free的使用疑惑
    mutable用于修改const成员函数中的成员变量
  • 原文地址:https://www.cnblogs.com/trekxu/p/8492745.html
Copyright © 2011-2022 走看看