zoukankan      html  css  js  c++  java
  • sql 连接查询 子查询 联合查询

    连接查询(多表查询)
    基本含义
    连接就是指两个或2个以上的表(数据源)“连接起来成为一个数据源”。
    实际上,两个表的完全的连接是这样的一个过程:
    左边的表的每一行,跟右边的表的每一行,两两互相“横向对接”后所得到的所有数据行的结果。
    注意:连接之后,并非形成了一个新的数据表,而只是一种“内存形态”。


    基本形式
    from 表1 [连接方式] join 表2 [on 连接条件];

     

    交叉连接:
    交叉连接是将两个表不设定任何条件的连接结果。
    交叉连接通常也被叫做“笛卡尔积”

    语法:
    from 表1 [cross] join 表2 ;


    内连接:
    语法:
    from 表1 [inner] join 表2 on 表1.字段1=表2.字段2;
    含义:找出(过滤)在交叉连接的结果表中的表1的字段1的值等于表2的字段2的值的那些行。

     

    左[外]连接:
    形式:
    from 表1 left [outer] join 表2 on 连接条件。
    说明:
    1,这里,left是关键字。
    2,连接条件跟内连接一样。
    3,含义是:内连接的结果基础上,加上左边表中所有不符合连接条件的数据,相应放右边表的字段的位置就自动补为“null”值。

     

    右[外]连接:
    右连接跟左连接恰恰相反:
    形式:
    from 表1 right [outer] join 表2 on 连接条件。
    说明:
    1,这里,right是关键字。
    2,连接条件跟内连接一样。
    3,含义是:在内连接的结果基础上,加上右边表中所有不符合连接条件的数据,相应本应放左边表的字段的位置就自动补为“null”值。

     


    全[外]连接:
    形式:
    from 表1 full [outer] join 表2 on 连接条件;
    说明:
    1,含义:其实是左右连接的“并集”(消除重复项),即内连接的结果,加上左表中不满足条件的所有行(右边对应补null),再加上,右表中不满足条件的所有行(左边对应补null)。
    2,mysql中其实不认识全[外]连接语法,即mysql这个软件本身不支持全连接的语法。

     

     

     

    子查询
    含义:把一个查询的结果当作另一个查询的条件。


    使用in子查询
    in的基本语法形式为:
    where 操作数 in (值1,值2, ....)
    则in子查询就是:
    where 操作数 in ( 列子查询 );
    含义:
    表示该操作数(字段值) 等于 该子查询的其中任意一个只,就算满足条件。

     


    联合查询
    关键字: union
    基本含义
    联合查询就是将两个select语句的查询结果“层叠”到一起成为一个“大结果”。
    两个查询结果的能够进行“联合”的先觉条件是:结果字段数相等。

    语法形式:
    select 语句1
    union [ALL | DISTINCT]
    select 语句2;
    说明:
    1,两个select语句的输出段(结果字段)数目一样,应用中通常类型一样才有意义。
    2,结果集中的字段以第一个select语句的字段为准。
    3,第一个select语句的字段可以做别名,但如果做别名,则后续的where,group,order等子句应该用该别名。
    4,如果要对整个联合结果进行排序或limit,则应该对各自的select语句加括号:
    (select 语句1)
    union
    (select 语句2)
    order by ..... limit ....;

     

  • 相关阅读:
    学点 C 语言(21): 数据类型 数组与指针
    学点 C 语言(16): 数据类型 关于常量的前缀、后缀
    学点 C 语言(19): 数据类型 数组
    学点 C 语言(15): 数据类型 sizeof(检测类型大小)
    学点 C 语言(18): 数据类型 枚举类型(enum)
    学点 C 语言(20): 数据类型 指针
    重写一个字符串分割函数 回复 "tomzw" 的问题
    学点 C 语言(14): 数据类型 双字节字符类型 wchar_t
    学点 C 语言(22): 数据类型 多维数组与指针
    学点 C 语言(17): 数据类型 因类型引发的问题或错误
  • 原文地址:https://www.cnblogs.com/longmingyeyu/p/12745917.html
Copyright © 2011-2022 走看看