开发者

SQL中笛卡尔积的实际应用

目录
  • 1.概念
  • 2.sql笛卡尔积语法
    • 2.1 表1有2条数据
    • 2.2 表2有3条数据
    • 2.3 笛卡尔积有6条数据
  • 3.sql中的应用
    • js

      1.概念

      百度百科:

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

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

      2.sql笛卡尔积语法

      select * from table1,table2

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

      示例:

      2.1 表1有2条数据

      SQL中笛卡尔积的实际应用

      2.2 表2有3条数据

      SQL中笛卡尔积的实际应用

      2.3 笛卡尔积有6条数据

      SQL中笛卡尔积的实际应用

      从行和列两个维度来观察上例笛卡尔积的结果集可以发现,

      结果集的行是表1的行数乘表2的行数(2x3)

      结果集的列是表1的列加表2的列(3+4)

      3.sql中的应用

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

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

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

      SQL中笛卡尔积的实际应用

      3.2 笛卡尔积加查询条件

      SQL中笛卡尔积的实际应用

      转化成内连接查询

      SQL中笛卡尔积的实际应用

      总结

      从结果上来看:内连接不编程客栈加关联条件的结果就是笛卡尔积

      从执行效率和底层实现来看,内连接和笛卡尔积有区别,内连接会先通过on条件过滤两张表的数据,再取交集;笛卡尔积会先将两个表取乘积再过滤数据,所以理论上内连接效率更高

      笛卡尔积在表数据量大的情况下查询结果会倍增,实际应用中要加查询条件过滤数据

      怎么理解笛卡尔积中的查询条件,可以将笛卡尔积sql转化成内连接sql去理解

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

      0

      上一篇:

      下一篇:

      精彩评论

      暂无评论...
      验证码 换一张
      取 消

      最新数据库

      数据库排行榜