zoukankan      html  css  js  c++  java
  • 连接(交叉连接、内连接、外连接、自连接)

    本文非原创

    可分为:交叉连接、内连接、外连接、自连接

    1.使用交叉连接:

    它是非限制连接,就是将两个表格不加任何条件的组合在一起,
    即第一个表格的所有记录分别和第二个表格的每一条记录相连接
    组合成新的记录,连接后结果集的行数是两个表格的行数的乘积,
    列为两表列之和。

    语法: (1)select 列名列表 from 表名1 cross join 表名2
    (2)select 列名列表 from 表名1 (起别名) , 表名2

    注意:当显示某一些字段要用表名指定。

    例:select a.book_name , b.book_num from table1 a , table2 b


    2.使用内连接:

    内连接是将两个表中满足条件的记录显示出来,就是在交叉连接的
    基础上加条件,一般采用“主键 = 外键”的形式。

    语法:(1)select 列名列表 from 表名1 [inner] join 表名2 on 条件表达式

    (2)select 列名列表 from 表名1 , 表名2 where 条件表达式

    例:select * from table1 a join table2 b on a.book_name = b.book_name

    3.使用外连接:

    外连接分为:左外连接、右外连接、全外连接

    (1)左外连接:

    它是将左表中的所有数据分别与右表的每一条数据进行组合,
    结果集中除了显示内连接的记录外,还显示左表中不符合条
    件的记录,并在右表中相应的列上填 Null 值.

    语法: select * from 表名1 left [outer] join 表名2 on 条件表达式

    (2)右外连接:

    它是将右表中的所有数据分别与左表的每一条数据进行组合,
    结果集中除了显示内连接的记录外,还显示右表中不符合条
    件的记录,并在左表中相应的列上填 Null 值.

    语法: select * from 表名1 right [outer] join 表名2 on 条件表达式

    (3)全外连接:

    全外连接就是左表中的所有记录分别与右表中的每一条进行组合,
    结果集中除返回内部连接记录之外,还要显示出两个表中不符合
    条件的全部记录,并在左表、右表中对应的位置添上Null 值。

    语法: select * from 表名1 full join 表名2 on 条件表达式

    4.使用自连接:

    自连接就是一张表的两个副本之间的连接,就是将同一个表的
    不同行连接起来;使用自连接时,必须为本表指定两个别名,
    使其在逻辑上成为两个表。

    例: select a.biao_jia , a.biao_liang from qian a join qian b
    on a.biao_jia = b.biao_jia and a.biao_liang <> b.biao_liang


    5. 合并结果集:

    使用union 语句可以把两个以上的结果集合并为一个结果集。

    语法: select …………
    union
    select …………

    合并结果集时有以下三点限制:
    (1)union 合并的结果集的两个 select 语句的列数相同,
    所使用列的数据类型要对应相同;

    (2)最后结果集中的列名来自第一个 select 语句;

    (3)在合并结果集时,默认将从最后结果集中删除重复的行,
    除非使用关键字。

    例:select book_name , book_id into #new_1 from YI
    go
    select egg_name , egg_shu into #new_2 from egg
    go
    select * from #new_1
    union all
    select * from # new_2

  • 相关阅读:
    MySQL查询优化程序
    mysql主从:主键冲突问题
    Cacti 'graph_xport.php' SQL注入漏洞
    Nginx SPDY缓冲区溢出漏洞
    Zend Framework XML外部实体和安全绕过漏洞
    WordPress 3.8.1 /xmlrpc.php拒绝服务漏洞
    OpenSSH 'child_set_env()'函数安全绕过漏洞
    PHP "gdImageCreateFromXpm()"空指针间接引用漏洞
    Apache HTTP Server多个拒绝服务漏洞
    Samba 安全漏洞
  • 原文地址:https://www.cnblogs.com/xieyuanzheng/p/5597089.html
Copyright © 2011-2022 走看看