多表查询

数据库

多表查询
数据库,  1. 分类:
    * 合并结果集(领悟)
    * 连接查询
    * 子查询

多表查询,表查询

多表查询
  1. 分类:
    * 合并结果集(精晓)
    * 连接查询
    * 子查询

联合结果集
  * 要求被统一的表中,列的品种和列数同样
  * UNION,去除重复行
  * UNION ALL,不去除重复行

 SELECT * FROM cd/*cd表*/
UNION ALL
SELECT * FROM ab;/*ab表*

一而再查询
  1. 分类
    * 内连接
    * 外连接
      > 左外连接
      > 右外接连
      > 全外连接(MySQL不辅助)
    * 自然连接(属于1种简化方式)

  2. 内连接
    * 方言:SELECT * FROM 表1 别名1, 表2 别名2 WHERE
别名1.xx=别名2.xx

    * 标准:SELECT * FROM 表1 别名1 INNER JOIN 表2 别名2 ON
别名1.xx=别名2.xx

    * 自然:SELECT * FROM 表1 别名1 NATURAL JOIN 表2 别名2
    * 内连接查询出的有着记录都满意条件。
 
  3. 外连接
    * 左外SELECT * FROM 表1 别名1 LEFT OUTER JOIN 表2 别名2 ON
别名1.xx=别名2.xx

      >
左表记录随就是或不是满意条件都会询问出来,而右表唯有满意条件工夫出来。左表中不满足条件的记录,右表部分都为NULL

    * 左外自然SELECT * FROM 表1 别名1 NATURAL LEFT OUTER JOIN
表2 别名2 ON 别名1.xx=别名2.xx

    * 右外SELECT * FROM 表1 别名1 RIGHT OUTER JOIN 表2 别名2
ON 别名1.xx=别名2.xx

      >
右表记录随意是或不是知足条件都会询问出来,而左表唯有知足条件技术出去。右表不满足条件的笔录,其左表部分都为NULL
    * 右外自然SELECT * FROM 表1 别名1 NATURAL RIGHT OUTER JOIN
表2 别名2 ON 别名1.xx=别名2.xx

    * 全链接:能够利用UNION来形成全链接

子查询
  :查询中有查询(查看select关键字的个数!)
  一. 并发的职分:
    * where后作为基准存在
    * from后作为表存在(多行多列)

  2. 条件
    * (***)单行单列:SELECT * FROM 表1 别名1 WHERE 列1
[=、>、<、>=、<=、!=] (SELECT 列 FROM 表2 别名2 WHERE
条件)

    * (**)多行单列:SELECT * FROM 表1 别名1 WHERE 列1 [IN, ALL,
ANY] (SELECT 列 FROM 表2 别名2 WHERE 条件)

    * (*)单行多列:SELECT * FROM 表1 别名1 WHERE (列1,列2) IN
(SELECT 列1, 列2 FROM 表2 别名2 WHERE 条件)

    * (***)多行多列:SELECT * FROM 表1 别名1 , (SELECT ….)
别名2 WHERE 条件

多表查询 一. 分类: *
合并结果集(驾驭) * 连接查询 * 子查询 合并结果集 * 供给被统1的表中,
列的门类和列数相同 *…

联合结果集
  * 供给被合并的表中,列的品类和列数同样
  * UNION,去除重复行
  * UNION ALL,不去除重复行

 SELECT * FROM cd/*cd表*/
UNION ALL
SELECT * FROM ab;/*ab表*

连日来查询
  1. 分类
    * 内连接
    * 外连接
      > 左外连接
      > 右外接连
      > 全外连接(MySQL不帮衬)
    * 自然连接(属于壹种简化格局)

  2. 内连接
    * 方言:SELECT * FROM 表1 别名1, 表2 别名2 WHERE
别名1.xx=别名2.xx

    * 标准:SELECT * FROM 表1 别名1 INNER JOIN 表2 别名2
ON 别名1.xx=别名2.xx

    * 自然:SELECT * FROM 表1 别名1 NATURAL JOIN 表2 别名2
    *
内连接查询出的享有记录都知足条件。

 
  3.
外连接

    * 左外SELECT * FROM 表1 别名1
LEFT OUTER JOIN 表2 别名2 ON
别名1.xx=别名2.xx

      > 左表记录随意是或不是满意条件都会询问出来,而右表唯有知足条件工夫出来。左表中不满意条件的笔录,右表部分都为NULL
    * 左外自然SELECT * FROM 表1 别名1 NATURAL LEFT OUTER JOIN 表2 别名2 ON 别名1.xx=别名2.xx
    * 右外SELECT * FROM 表1 别名1 RIGHT OUTER JOIN 表2 别名2 ON 别名1.xx=别名2.xx
      > 右表记录随意是还是不是满足条件都会询问出来,而左表唯有知足条件本事出去。右表不满意条件的记录,其左表部分都为NULL
    * 右外自然SELECT * FROM 表1 别名1 NATURAL RIGHT OUTER JOIN 表2 别名2 ON 别名1.xx=别名2.xx
    * 全链接:能够行使UNION来实现全链接

子查询
  :查询中有查询(查看select关键字的个数!)
  一. 冒出的职分:
    *
where后作为基准存在

    *
from后作为表存在(多行多列)

  2. 条件
    * (***)单行单列:SELECT * FROM
表1 别名1 WHERE 列1 [=、>、<、>=、<=、!=] (SELECT 列 FROM 表2 别名2 WHERE
条件)

    * (**)多行单列:SELECT * FROM 表1
别名1 WHERE 列1 [IN, ALL,
ANY] (SELECT 列 FROM 表2 别名2
WHERE 条件)

    * (*)单行多列:SELECT * FROM 表1
别名1 WHERE (列1,列2) IN (SELECT 列1, 列2
FROM 表2 别名2 WHERE 条件)

    * (***)多行多列:SELECT * FROM
表1 别名1 , (SELECT ….) 别名2 WHERE
条件

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图