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 复制过滤重复如何解决

    mysql 复制过滤重复如何解决

    在进行mysql复制过程中,会出现数据重复的现象,怎样利用mysql 过滤重复的数据呢?本文将提供详细的解决方法,需要了解的朋友可以参考下
    2012-11-11
  • 一文掌握MySQL表的创建和约束

    一文掌握MySQL表的创建和约束

    这篇文章主要和大家分享一下数据库的创建和销毁语法以及详细讲解MySQL表的创建代码和约束的使用,文中的示例代码讲解详细,感兴趣的可以了解一下
    2022-07-07
  • MySQL关于索引的分类与优化详解

    MySQL关于索引的分类与优化详解

    这篇文章主要介绍了MySQL关于索引的分类与优化,索引是帮助MySQL高效获取数据的数据结构,目的在于提高查询效率,合理的索引分类和优化策略对于提高MySQL数据库的性能至关重要,需要的朋友可以参考下
    2024-03-03
  • mysql grants小记

    mysql grants小记

    grant命令是对mysql数据库进行用户创建,权限或其他参数控制的强大的命令,官网上介绍它就有几大页,要用精它恐怕不是一日半早的事情,权宜根据心得慢慢领会吧!
    2011-05-05
  • MySQL优化GROUP BY方案

    MySQL优化GROUP BY方案

    满足GROUP BY子句的最一般的方法是扫描整个表并创建一个新的临时表,表中每个组的所有行应为连续的,然后使用该临时表来找到组并应用累积函数(如果有)。在某些情况中,MySQL能够做得更好,即通过索引访问而不用创建临时表。
    2014-07-07
  • mysql中inner join和left join使用详解

    mysql中inner join和left join使用详解

    本文主要介绍了mysql中inner join和left join使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • MySQL密码忘了怎么办?MySQL重置root密码方法

    MySQL密码忘了怎么办?MySQL重置root密码方法

    本文主要介绍Windows和Linux系统下忘记密码重置root密码的方法,需要的朋友可以参考下。
    2016-05-05
  • MySQL Count函数使用教程

    MySQL Count函数使用教程

    这篇文章主要介绍了MySQL Count函数,COUNT()是一个聚合函数,返回指定匹配条件的行数。开发中常用来统计表中数据,全部数据,不为NULL数据,或者去重数据
    2022-12-12
  • MySQL-8.0.26配置图文教程

    MySQL-8.0.26配置图文教程

    最近公司项目更换数据库版本,在此记录分享一下自己安装配置MySQL8.0版本的过程吧,本文通过图文并茂的形式给大家介绍的非常详细,对MySQL-8.0.26配置教程感兴趣的朋友跟随小编一起看看吧
    2021-12-12
  • mysql排序失效问题的解决

    mysql排序失效问题的解决

    本文主要介绍了mysql排序失效问题的解决,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05

最新评论