SQL中笛卡尔积的实际应用

 更新时间:2023年03月02日 11:36:07   作者:deelless  
笛卡尔积算法,又称为笛卡尔积枚举法,是一种枚举算法,用于在两个或多个集合之间枚举所有可能的组合,这篇文章主要给大家介绍了关于SQL中笛卡尔积的相关资料,需要的朋友可以参考下

1.概念

百度百科:

笛卡尔乘积是指在数学中,两个集合X和Y的笛卡尔积(Cartesian product),又称直积,表示为X × Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员

百度百科有点绕,定义自己解释自己,意思大概是这个意思,可以简单理解成两个集合的乘积

2.sql笛卡尔积语法

select * from table1,table2

其中table1和table2 分别表示两个表的表名

示例:

2.1 表1有2条数据

2.2 表2有3条数据

2.3 笛卡尔积有6条数据

从行和列两个维度来观察上例笛卡尔积的结果集可以发现,
结果集的行是表1的行数乘表2的行数(2x3)
结果集的列是表1的列加表2的列(3+4)

3.sql中的应用

3.1 高中数学集合中有介绍交集、并集、差集、笛卡尔积,一个sql语句可以理解成一个结果集,多个表的关联查询底层实际上是数学中集合和集合的关系。

进一步可以发现笛卡尔积和内连接的sql语句可以相互转化,这对我们理解内连接的本质和笛卡尔积的查询条件很重要

内连接也可以得到2.3笛卡尔积的结果

3.2 笛卡尔积加查询条件

转化成内连接查询

总结

从结果上来看:内连接不加关联条件的结果就是笛卡尔积
从执行效率和底层实现来看,内连接和笛卡尔积有区别,内连接会先通过on条件过滤两张表的数据,再取交集;笛卡尔积会先将两个表取乘积再过滤数据,所以理论上内连接效率更高
笛卡尔积在表数据量大的情况下查询结果会倍增,实际应用中要加查询条件过滤数据
怎么理解笛卡尔积中的查询条件,可以将笛卡尔积sql转化成内连接sql去理解

到此这篇关于SQL中笛卡尔积的文章就介绍到这了,更多相关SQL中笛卡尔积内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • mysql和oracle默认排序的方法 - 不指定order by

    mysql和oracle默认排序的方法 - 不指定order by

    这篇文章主要介绍了mysql和oracle默认排序的方法 - 不指定order by。具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • 深入了解MySQL中聚合函数的使用

    深入了解MySQL中聚合函数的使用

    这篇文章主要为大家详细介绍一下MySQL中聚合函数的使用,文中的示例代码讲解详细,对我们学习MySQL有一定帮助,需要的可以参考一下
    2022-07-07
  • mysql not in、left join、IS NULL、NOT EXISTS 效率问题记录

    mysql not in、left join、IS NULL、NOT EXISTS 效率问题记录

    mysql not in、left join、IS NULL、NOT EXISTS 效率问题记录,需要的朋友可以参考下。
    2011-12-12
  • mysql三种批量增加的性能分析

    mysql三种批量增加的性能分析

    最近在深入学习hibernate,在进行批量操作时,发现hibernate批量操作性能非常低.于是就想找一个性能较高的方法,在对jdbc、jdbcTemplate、hibernate进行测试后,发现jdbc的执行效率是最高的,jdbcTemplate也很相近,hibernate就不考虑了,惨不忍睹啊
    2012-08-08
  • MySQL表结构变更你不可不知的Metadata Lock详解

    MySQL表结构变更你不可不知的Metadata Lock详解

    这篇文章主要给大家介绍了关于MySQL表结构变更你不可不知的Metadata Lock的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-08-08
  • MYSQL 批量替换之replace语法的使用详解

    MYSQL 批量替换之replace语法的使用详解

    本篇文章是对MYSQL中replace语法的使用进行了详细的分析介绍,需要的朋友参考下
    2013-07-07
  • Windows安装MySQL后怎么开启root的网络访问权限

    Windows安装MySQL后怎么开启root的网络访问权限

    Windows安装MySQL后默认只能本机访问,怎么开启网络访问,本文给大家介绍介绍了Windows安装MySQL后怎么开启root的网络访问权限,需要的朋友可以参考下
    2023-08-08
  • MySQL学习笔记5:修改表(alter table)

    MySQL学习笔记5:修改表(alter table)

    我们在创建表的过程中难免会考虑不周,因此后期会修改表修改表需要用到alter table修改表语句,接下来详细介绍,需要的朋友可以参考下
    2013-01-01
  • win7下mysql5.7.17安装配置方法图文教程

    win7下mysql5.7.17安装配置方法图文教程

    这篇文章主要为大家详细介绍了win7下mysql5.7.17安装配置方法图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • MySQL之PXC集群搭建的方法步骤

    MySQL之PXC集群搭建的方法步骤

    PXC 是一套 MySQL 高可用集群解决方案,本文主要介绍了MySQL之PXC集群搭建的方法步骤,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05

最新评论