一、笛卡尔乘积与数据库连接(join)

数据库连接是从两个关系的笛卡尔乘积中选取属性间满足一定条件的元组。


现有两个关系R、S:
关系R:

关系S:

关系R与S的笛卡尔乘积为:

在连接中有两种非常重要的连接:等值连接与自然连接。
等值连接:(条件R.B = S.B)

当然也可以有非等值连接(比如R.C < S.E)
自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是同名的属性值,并且在结果中把重复的属性列去掉。
自然连接:


在自然连接时候,关系R中的某些元祖有可能在S中不存在公共属性值相等的元祖,从而造成R中的这些元祖丢失了,同样,S中有些元祖也可能被舍弃。这些舍弃的元祖被称为悬浮元祖。
如果把悬浮元祖也保留在结果关系中,而在其他属性上填空值(null),那么这种连接称为外连接;只保留左边关系R中的悬浮元祖称为左外连接;只保留右边关系的悬浮元祖称为右外连接
外连接:

左外连接:

右外连接

注意:left outer on … where …在on后的条件跟在where后的条件不一样。
on后的:右表记录能不能跟左表连接的条件
where后的:连接完成后进行筛选
详见https://blog.csdn.net/minixuezhen/article/details/79763263

数据库连接与笛卡尔乘积相关推荐

  1. 笛卡尔乘积与数据库连接(join)

    一.笛卡尔乘积与数据库连接(join) 数据库连接是从两个关系的笛卡尔乘积中选取属性间满足一定条件的元组. 现有两个关系R.S: 关系R: 关系S: 关系R与S的笛卡尔乘积为: 在连接中有两种非常重要 ...

  2. JavaScript实现cartesianProduct笛卡尔乘积算法(附完整源码)

    JavaScript实现cartesianProduct笛卡尔乘积算法(附完整源码) cartesianProduct.js完整源代码 cartesianProduct.test.js完整源代码 ca ...

  3. MySQL连接查询—笛卡尔乘积

    连接查询 含义:连接查询又称为多表查询,当查询的字段来自多个表时,就会用到连接查询. 笛卡尔乘积 笛卡尔乘积现象:表1有 m 行,表2有 n 行,则查询结果有 m*n 行. SELECT `name` ...

  4. 使用Java8新特性(stream流、Lambda表达式)实现多个List 的笛卡尔乘积 返回需要的List<JavaBean>

    需求分析: 有两个Long类型的集合 : List<Long> tagsIds; List<Long> attributesIds; 现在需要将这两个Long类型的集合进行组合 ...

  5. 一文完整MySQL连接查询,笛卡尔乘积,内连接外连接交叉连接

    文章目录 笛卡尔乘积 连接查询分类 等值连接 非等值连接 自连接 外连接 交叉连接 连接查询又称为多表查询,当查询的字段来自于多个表时,使用连接查询. 笛卡尔乘积 笛卡尔乘积现象:表1有m行,表2有n ...

  6. 笛卡尔乘积算法的体现

    一个商品有多项属性,多项属性的组合就产生不同的商品型号如: 衣服:     颜色:红.绿     尺寸:大.中.小 产生的系列就有:红|大.红|中.红|小.绿|大.绿|中.绿|小 如果商品的属性不至两 ...

  7. OpenMP并行加速笛卡尔乘积

    1.字典字符集的笛卡尔乘积 问题描述: 对于给定的由字典字符集组合而成的表达式,求该表达式构成的所有元素.例如表达式[0-9][a-z],其中0-9表示10个数字,a-z表示26个小写字母,构成的所有 ...

  8. 克罗内克积(Kronecker product)与笛卡尔乘积(Cartesian product)

    数学上,克罗内克积是两个任意大小的矩阵间的运算. 假设A为mxn的矩阵,B为pxq的矩阵. ,. 在进行计算的时候,克罗内克积可表示为,为mpxnq大小的矩阵.在MATLAB中可以使用kron函数. ...

  9. 【Python】求笛卡尔乘积

    在数学中,两个集合X和Y的笛卡尓乘积(Cartesian product),又称直积,表示为X × Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员.假设集合A={a,b},集合 ...

最新文章

  1. Xamarin.FormsShell基础教程(3)Shell项目构成
  2. Java 性能优化实战记录(1)---定位并分析耗cpu最多的线程
  3. 栈应用之 括号匹配问题(Python 版)
  4. C语言多维数组本质技术推演
  5. 关于重复接收NSNotificationCenter发送的通知的问题
  6. iOS中 动态启动图GIF的简单设置 韩俊强的博客
  7. css-样式重构-代码分享
  8. Enterprise Library 2.0 Hands On Lab 翻译(3):数据访问程序块(三)
  9. 下载虚拟化的mac 系统
  10. 3==num VS num==3
  11. Visual C++串口通信编程---多线程异步方式
  12. hive udaf_Hive 混合函数 UDTF UDF UDAF详解
  13. 捷联惯导系统模型及仿真
  14. 用excel做数据分析
  15. Android 程序员必须知道的 53 个知识点
  16. mysqloffset什么意思_重新认识Mysql的LIMIT OFFSET
  17. Visual Studio Code 安装Vim插件后,复制(Ctrl C)等快捷键变成Insert 模式的问题
  18. 一个屌丝程序猿的人生(五十七)
  19. 信捷PLC的C语言程序写法例子
  20. 解析TCP连接之“三次握手”和“四次挥手”

热门文章

  1. 大数据挖掘流程及方法
  2. Mac Android 合作,有了它们,Mac与Android终于在一起了
  3. 关于rails2.0.2中使用scaffold报错的问题
  4. minigui[基础篇][12]—— 光标
  5. 工厂设备管理中经常会遇到哪些问题?
  6. for语句讲解与举例
  7. Photoshop根据图片模板批量生成动态图片
  8. 【狮子数学】00数学思维讲述
  9. Blink编译及使用
  10. 用C语言API(常用)操作MySql数据库