• 表连接


    一、表连接

    • 实际查询应用中,用户需要的数据并不在一个表中,可能存在多个表中,需要多表查询。
    • 数据库应用中,经常会需要从多个相关的表中查询数据,这就需要进行表连接。

    二、内连接

    1、语法格式

    内部连接是比较常用的一种数据连接查询的方式,内部连接的语法格式如下:

    格式一:

    Select select_list

    from 表名1,表名2

    Where 表1.列=表2.列

    格式二:

    Select select_list

    from 表名1[inner] join 表名2

    on  表1.列=表2.列

    2、说明

    多表查询首先要在各个表之间进行连接。用户在进行基本连接操作时,可以遵循以下基本原则:

    • Select子句列表中,每个目标列前都要加上基表名称
    • From子句应包括所有使用的基表
    • Where子句应定义一个连接

    3、分类

    inner join on又划分为两个分类:

    (1)等值连接

    在连接条件中使用比较运算符等于(=)来比较连接列的值,其查询结果中列出被连接表中的所有列。条件中只包含等号"=",没有其它符号在里面。例如:

     SELECT S.学号, S.姓名, S.性别, S.籍贯, C.班级名称 C.年级 FROM 学生信息S INNER JOIN 班级信息 C ON S.班级编号=C.班级编号; 

    (2)非等值连接

    在连接条件中使用了除等号外的其他比较运算符,还有其他的符号> 、< 、 >=来比较连接列的列值。例如:查询成绩大于30的学生个人情况(学号,姓名,性别,班级编号,成绩),并按照成绩降序排列。

    三、外连接

    • 外部连接会返回from子句中提到的至少一个表或视图的所有行;
    • 外部连接分为左外部连接、右外部连接;
    • 左外部连接对连接条件中的左边的表不加限制;
    • 右外部连接对连接条件中右边的表不加限制;
    • 在from之后,先写的表是左表,后写的表是右表。

    1、左外连接

    对左边的表不加限制,返回左表的所有行。使用关键字left outer join关键字对两个表进行连接,则结果集中的右表的相对应的位置为null。

    2、右外连接

    对右边的表不加限制,返回右表的所有行。使用right outer join关键字对两个表进行连接,右外连接是左外连接的反向连接,只不过在查询结果集中包括的是指定右表的所有行。如果右边的某行在左边没有找到匹配行,那结果集中的左边的相对应位置为null。

    四、注意事项

    • 如果查询的这个列,两个表中都有,那么在写的过程中,列的前面一定要加表名;
    • 如果查询的这个列,只属于一个表中的,那就可以直接写列名;
    • 进行表连接的列:列名可以不一致,但是,数据类型和值要保持一致。
    欢迎批评指正,提出问题,谢谢!
  • 相关阅读:
    创建部署规划
    并发容器Map之一:(jdk1.8) ConcurrentHashMap的红黑树实现分析
    CopyOnWrite容器之二:CopyOnWriteArraySet
    jQuery1.5的新特征subclass——jQuery插件机制的救赎
    getElementsByTagName
    facebook是如何管理代码的
    由addClass衍生出来的字符串去重问题
    节点排序
    Sizzle是怎样工作的
    我的模块加载系统 v3
  • 原文地址:https://www.cnblogs.com/xxeleanor/p/14928776.html
Copyright © 2020-2023  润新知