Mysql连接join查询原理知识点

 更新时间:2019年02月12日 15:36:41   投稿:laozhang  
在本文里我们给大家整理了一篇关于Mysql连接join查询原理知识点文章,对此感兴趣的朋友们可以学习下。

Mysql连接(join)查询

1、基本概念

将两个表的每一行,以“两两横向对接”的方式,所得到的所有行的结果。

假设:

表A有n1行,m1列;

表B有n2行,m2列;

则表A和表B“对接”之后,就会有:

n1*n2行;

m1+m2列。

2、则他们对接(连接)之后的结果类似这样:

3、连接查询基本形式: from  表1  【连接方式】 join  表2  【on连接条件】连接查询基本形式: from  表1  【连接方式】 join  表2  【on连接条件】

1、连接查询的分类

交叉连接

其实就是两个表之间按连接的基本概念,进行连接之后所得到的“所有数据”,而对此无任何“筛选”的结果——筛选就是指连接条件。

即:交叉连接就是没有条件的“全部连接”——有称为 笛卡尔积。

交叉连接通常没有实用价值,因为这样连接之后 数据,每一行数据的意义就可能会“丢失”。

形式:

from  表1  【cross】 join  表2  ;

或:

from  表1  , 表2  ;

内连接

形式:

from  表1  【inner】 join  表2  on  表1.字段1 = 表2.字段2;

含义:

取得一个“交叉连接”的结果中,满足所设定的连接条件(就是on后面的条件)的那些行的数据;

交叉连接往往会有“无意义数据”,如下:

2、看内连接的结果:

3、结果为:

4、可见:内连接其实就是找出一个交叉连接的数据结果中,“有意义”的那些数据行。而一个交叉连接,其中的数据,有的有意义,有的没有意义(错误数据)。 

但是,要注意:

  • 1,这种连接条件,不是随意设置,而是要根据表之间的实际关系来设置,通常该关系就是两个表之间的具有“主外键关系”的两个字段的值相等。
  • 2,可见,连接查询,跟我们之前所学的“外键关系”,是有其内在的逻辑一致性的。
  • 3,不过,我们做内连接的时候,并不是要求2个表“必须”有外键关系——我们只是自己从现实角度理解他们有外键关系(数据关系)就可以,而在查询的时候使用内连接就建立起了他们的关系。可见:内连接其实就是找出一个交叉连接的数据结果中,“有意义”的那些数据行。而一个交叉连接,其中的数据,有的有意义,有的没有意义(错误数据)。 

相关文章

  • 一文详解MySQL—Join的使用优化

    一文详解MySQL—Join的使用优化

    JOIN是一种非常常见的操作,用于将两个或多个表中的数据合并到一个结果集中。MySQL支持多种JOIN类型,本文通过代码示例详细介绍了Join的使用优化,有需要的小伙伴可以参考阅读
    2023-04-04
  • 分享3个MySQL查询容易踩的坑

    分享3个MySQL查询容易踩的坑

    无论你是技术大佬,还是刚入行的小白,时不时都会踩到Mysql数据库的坑这篇文章主要给大家介绍了关于3个MySQL查询容易踩的坑,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-11-11
  • linux下安装mysql简单的方法

    linux下安装mysql简单的方法

    这篇文章主要介绍了 linux下安装mysql简单的方法,需要的朋友可以参考下
    2017-08-08
  • Mysql效率优化定位较低sql的两种方式

    Mysql效率优化定位较低sql的两种方式

    通过慢查询日志定位那些执行效率较低的 SQL 语句,用 --log-slow-queries[=file_name] 选项启动时, mysqld 会 写一个包含所有执行时间超过 long_query_time 秒的 SQL 语句的日志文件,通过查看这个日志文件定位效率较低的 SQL
    2015-10-10
  • 关于MySQL innodb_autoinc_lock_mode介绍

    关于MySQL innodb_autoinc_lock_mode介绍

    下面小编就为大家带来一篇关于MySQL innodb_autoinc_lock_mode介绍。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • 教你如何在MySQL命令行中使用SQL语句的规则

    教你如何在MySQL命令行中使用SQL语句的规则

    这篇文章主要介绍了教你如何在MySQL命令行中使用SQL语句的规则 ,需要的朋友可以参考下
    2014-08-08
  • mysql序号rownum行号实现方式

    mysql序号rownum行号实现方式

    这篇文章主要介绍了mysql序号rownum行号实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • MySQL禁用InnoDB引擎的方法

    MySQL禁用InnoDB引擎的方法

    这篇文章主要介绍了MySQL禁用InnoDB引擎的方法,针对的Mysql版本是5.5和5.6,使用了两种不同的配置文件,需要的朋友可以参考下
    2014-05-05
  • MySQL 到 ClickHouse 实时数据同步实操

    MySQL 到 ClickHouse 实时数据同步实操

    这篇文章主要分享的是MySQL 到 ClickHouse 实时数据同步实操,小编测试了测了一种方式,可以非常方便地完成 MySQL 数据实时同步到ClickHouse,跟大家分享一下,希望对你有帮助
    2022-01-01
  • mysql delete limit 使用方法详解

    mysql delete limit 使用方法详解

    今天研究cms系统的时候发现,delete 语句后面有个limit,一直都是select查询的时候才使用,不懂为什么要用这个,正好就百度一下为大家分享下delete中使用limit方法与有点
    2014-11-11

最新评论