zoukankan      html  css  js  c++  java
  • mysql--连接查询(内外连接)

    连接查询又称多表查询,查询到的字段来自于多个表中的数据。
    一、 连接查询的分类和语法
    1.分类
    按标准分:
    92标准:只支持内连接
    99标准:支持内连接和、外连接和全外连接
    功能进行分类:
    内连接:inner
    等值连接
    非等值连接
    自连接
    外连接:
    左外连接left 【outer】
    右外连接right【outer】
    全外连接(mysql不支持) full【outer】
    交叉连接cross
    笛卡尔集:没有加约束条件。若表1有m行数据,表2有m2行数据,最终有m*m2行数据。
    2.语法
    select 查询列表
    from 表1 别名 【连接类型】
    join 表2 别名
    on 连接条件
    【where 筛选条件】
    【group by 分组】
    【having 筛选条件】
    【order by 排序列表】
    二、内连接(inner)
    1.等值连接
    语法:select 查询列表 from 表1 别名1 [inner join] 表2 别名 [on]/[where] 连接条件
    特点:
    ①多表等值连接的结果为多表的交集部分;
    ②m个表的连接,至少需要m-1个连接条件
    ③各个表的先后顺序没有要求
    ④可以结合其他函数和字句,比如:排序、分组、筛选等
    ⑤可以用inner join on连接也可以使用from多个表
    ⑥inner join on 是sql99语法规范,提高了分离性、可读性。




    2.非等值连接


    3.自连接
    查询出员工名和上级名

    三、外连接
    用于查询一个表中存在另一个表中不存在的数据
    1.特点
    ①外连接的查询结果为主表中的所有数据,若从表中有和他匹配的,则显示匹配的数据;若没有与之匹配的数据,则显示null
    ②左外连接,left join 左边是主表;右外连接,right join 右边是主表
    ③左外和右外交换两个表的顺序,可以实现相同的查询结果
    ④全外连接=内连接+表1中有表2中没有的+表2中有表1中没有的
    2.左外连接

    3.右外连接

    4.全连接

  • 相关阅读:
    Java实现 蓝桥杯 生命游戏
    Java实现 蓝桥杯 生命游戏
    Java实现UVA10131越大越聪明(蓝桥杯每周一题)
    Linux 静态库&动态库调用
    linux下c++开发环境安装(eclipse+cdt)
    怎样在Windows和Linux下写相同的代码
    教会你如何编写makefile文件
    Linux编译多个不同目录下的文件以及静态库、动态库的使用
    Fedora 17 下安装codeblocks
    Fedora 下安装codeblocks
  • 原文地址:https://www.cnblogs.com/rootcz/p/9499830.html
Copyright © 2011-2022 走看看