美文网首页
多表连接查询

多表连接查询

作者: 想吃热干面了 | 来源:发表于2019-02-26 23:06 被阅读0次

什么是连接

连接是在多个表之间通过一定的连接条件,使表之间发生关联,进而能从多个表之间获取数据,语法:


image.png

连接分类

1.按连接条件:等值连接和非等值连接
2.按其他连接方法:外部连接和内部连接

多表连接的写法:(主要介绍两种)

1.基本写法:绝大多数符合sql标准,其他关系型数据库也是用
2.ANNSI 99写法:ANSI标准提供的写法,所有关系型数据库都必须支持

笛卡尔积现象

第一个表中所有行,与被连接表中所有行的数据都发生了链接 列:一表14条 二表4条数据 连接后有14*4=56条数据
发生条件:
1、连接条件被省略(未写表连接)
2、连接条件无效
为了避免笛卡尔积的产生,通常需要在where子句中包含一个有效的连接条件

等值连接

即两个表中有相同的列名以及数据(外键关联)
在多表连接时可以用表别名来简化查询代码:

image.png
多于两个表的连接

用and来连接表的关联关系


非等值连接:between and

image.png

多表连接的写法思路

1.分析查询列来源的表,构成from子句
2.分析表的关联关系,如两个表之间无直接关联关系,而是通过另一个中间表关联,则也要在from子句中补充中间关联表
3.在where子句中补充表之间的关联关系,N个表一般要N-1个关联关系
4.分析是否需要其他限制条件补充到where子句的表关联关系之后,作为限制条件
5.根据要求补充select子句
6.分析是否要求排序,如要且涉及其他表就要再次执行2.3.4步

自连接

自身连接,即在一个表内通过某种条件和本身连接的一种方式(如同多表连接一样),如下图 设置表别名来区分 也设置了列别名


image.png

ANNSI SQL:标准的连接语法

交叉连接

使用cross join子句:同笛卡尔积现象


image.png

自然连接

1.是对两个表之间相同名字和数据类型的列进行的等值连接
2.如相同列的数据类型不同,回报错
3.使用natural join子句来完成


image.png

USING子句

使用using子句可以指定用某个或某几个相同名字和数据类型的列作为连接条件


image.png

ON子句

用于指定任意连接条件,或指定要连接的列
可以将连接条件和其他检索条件分开,其他检索条件写在where子句中
可以提高代码的可读性


image.png

外连接

image.png
image.png
image.png

总结

连接方式

基本写法:等值连接 非等值连接 自连接
SQL-99写法:
交叉连接 cross join
自然连接 natural join 用on(using)子句指定限制条件
左外连接 left outer join...on...
右外连接 right outer join...on...

相关文章

  • 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/wsgoyqtx.html