美文网首页
多表连接查询

多表连接查询

作者: DOB_8199 | 来源:发表于2021-03-03 12:59 被阅读0次

含义

又称多表查询,当查询的字段来自于多个表时,就会用到连接查询

笛卡尔乘积:如果连接条件省略或无效则会出现

解决办法:添加上连接条件


分类

    按年代分类:

    sql92标准:仅仅支持内连接

    sql99标准【推荐】:支持内连接+外连接(左外和右外)+交叉连接


sql99语法

通过join关键字实现连接

        含义:1999年推出的sql语法

        支持:等值连接、非等值连接 (内连接),外连接,交叉连接

        语法:

            select 字段,...

            from 表1

            【inner|left outer|right outer|cross】join 表2 on  连接条件

            【inner|left outer|right outer|cross】join 表3 on  连接条件

            【where 筛选条件】

            【group by 分组字段】

            【having 分组后的筛选条件】

            【order by 排序的字段或表达式】

         好处:语句上,连接条件和筛选条件实现了分离,简洁明了!


sql92标准

1. 等值连接

    ① 多表等值连接的结果为多表的交集部分

    ②n表连接,至少需要n-1个连接条件

    ③ 多表的顺序没有要求

    ④一般需要为表起别名

    ⑤可以搭配前面介绍的所有子句使用,比如排序、分组、筛选

技巧

为表起别名

    ①提高语句的简洁度

    ②区分多个重名的字段

注意:如果为表起了别名,则查询的字段就不能使用原来的表名去限定

2. 非等值连接

自连接

在表内寻找两次,第一次寻找目标的结果为第二次寻找目标的索引


sql 99标准

分类:

    内连接(★):inner

    外连接

        左外(★):left 【outer】

        右外(★):right 【outer】

        全外:full【outer】

    交叉连接:cross

1. 内连接

语法:

    select 查询列表

    from 表1 别名

    inner join 表2 别名

    on 连接条件;

分类:

等值,非等值,自连接

特点:

①添加排序、分组、筛选

②inner可以省略

③ 筛选条件放在where后面,连接条件放在on后面,提高分离性,便于阅读

④inner join连接和sql92语法中的等值连接效果是一样的,都是查询多表的交集

(1)等值连接

(二)非等值连接

(三)自连接

2. 外连接

应用场景:

用于查询一个表中有,另一个表没有的记录

左外 右外

特点:

1、外连接的查询结果为主表中的所有记录

        如果从表中有和它匹配的,则显示匹配的值

        如果从表中没有和它匹配的,则显示null

        外连接查询结果=内连接结果+主表中有而从表没有的记录

2、左外连接,left join左边的是主表

      右外连接,right join右边的是主表

3、左外和右外交换两个表的顺序,可以实现同样的效果

4、全外连接=内连接的结果+表1中有但表2没有的+表2中有但表1没有的

扩展

3. 交叉连接

扩展

相关文章

  • SQL语句常用命令整理---多表查询

    多表查詢之关连查询 多表数据连接查询,简称连接查询。本篇我们来一同学习多表连接查询的相关用法,主要內容有: 内连接...

  • MySQL 基础 6 多表查询

    1.1 多表查询的概述 1.1.1 多表查询的分类 1.1.1.1连接查询 交叉连接:cross join交叉连接...

  • 003 多表查询, 事务和DCL.

    多表查询 多表查询: 笛卡尔积.内连接查询隐式内连接 : 使用where.eg: select * from ...

  • Fourth Day

    /-----------------------------------多表连接查询---------------...

  • Oracle详解(Ⅱ):世界上目前已知最好的关系型数据库

    多表查询 多表连接基本查询 使用一张以上的表做查询就是多表查询 这样会出现的结果就是:笛卡儿积连接查询的时候一般在...

  • Oracle连接_子查询

    多表查询:多张表关联在一起进行查询,在多表查询中会频繁的使用表的别名。连接:内连接(等值连接):select 列名...

  • 2018-08-30

    今天学习了Oracle的多表连接,组函数,分组查询,子查询,常用函数。 多表连接有三种类型:内连接,外连接,自连接...

  • SQL-连接查询

    连接查询 又叫:多表查询、多表连接含义:当查询的子都啊来自多个表时,就会用到连接查询 笛卡尔乘积现象:表1有m行,...

  • python面试题01

    1、什么是多表关联查询,有几种多表关联的查询方式,分别是什么? 多表关联查询概念: 多表关联查询分类:1.1内连接...

  • MySQL元数据获取基础笔记day05

    多表连接查询 1、作用 业务需要的数据来自多张表时 2、多表连接查询基本语法 ??内连接? 外链接全链...

网友评论

      本文标题:多表连接查询

      本文链接:https://www.haomeiwen.com/subject/pkqbfltx.html