1.笛卡尔积

定义:

设A,B为集合,用A中元素为第一元素,B中元素为第二元素构成的有序对,所有这样的有序对组成的集合
,叫做A与B的笛卡尔积,记作AxB.

上面有一个很关键的词为“有序”,因此,我们来看一个例子:
例如,A={a,b},B={0,1,2},则
  AxB={<a,o>,<a,1>,<a,2>,<b,0>,<b,1>,<b,2>,}
  BxA={<0,a>,<0,b>,<1,a>,<1,b>,<2,a>,<2,b>}

因此,一般地说,笛卡尔积运算不满足交换律,即AxB≠BxA

2. sql语句:

MSSQL的多表查询(笛卡尔积原理)

验证过程(sql server management sudio):

建立表A,B,C,D,且每个表都只创建一列

代码如下:

创建表

  • create table A (id int not null)
  • create table B (id2 int not null)
  • create table C (id3 int not null)
  • create table D (id4 int not null)

插入数据

  • insert into A values(1),(2),(3)
  • insert into B values(1),(2),(3)
  • insert into C values(1),(2),(3),(4),(5)
  • insert into D values(1),(2)

表示:

A={1,2,3}

B={1,2,3}

C={1,2,3,4,5}

D={1,2}

查询数据:

select * from A,B             select * from A,C              select * from A,D

                         

笛卡尔积为 B X A              笛卡尔积为 A X C                     笛卡尔积为 D X A

总结:

记  A表的记录行的行数为n,B表的记录行的行数为m

  当 n 》m时,select * from A,B的结果集为笛卡尔积 B X A

  当 n < m时,select * from A,B的结果集为笛卡尔积 A X B

sql 多表查询结果验证的更多相关文章

  1. sql多表查询之一:Where 和 On的秘密

    原文 sql多表查询之一:Where 和 On的秘密 对于还在SQL初级阶段的朋友来说,sql多表查询问题是一个比较有趣也容易出错的技术.什么时候会用到sql多表查询呢?是在两张或两张以上表单中通过某 ...

  2. oracle SQL多表查询

    SQL多表查询 1.集合理论 1.1 什么是集合 具有某种特定性质的事物的总体. 集合的特性:无序性.互异性.确定性. 一个集合可以小到从一个表中取出一行中的一列.              1 ro ...

  3. SQL联表查询

    数据库中最最常用的语法----select.简单的select语法很直白: select column from table where expression: 从((from)存储数据的地方(tab ...

  4. Sql Server的艺术(四) SQL多表查询

    表的基本连接 SQL的一个重要特性就是能通过JOIN关键词,从多个交叉表中查询.分析数据. 连接表的目的 在关系数据库中,数据表设计的一个重要原则就是要避免冗余性. 减少了冗余信息,节省了数据库存储空 ...

  5. sql多表查询(单表查询略过)

    表library: 表borrow: 表reader: 1.等值连接:(常用) 原理:将多张表组合成一个逻辑大表,即字段相加记录相乘(笛卡尔积). 语法:select * from 表A,表B whe ...

  6. SQL多表查询总结

    前言 连接查询包括合并.内连接.外连接和交叉连接,如果涉及多表查询,了解这些连接的特点很重要.只有真正了解它们之间的区别,才能正确使用. 一.Union UNION 操作符用于合并两个或多个 SELE ...

  7. 【数据库】sql连表查询

    SQL总结 连表查询 连接查询包括合并.内连接.外连接和交叉连接,如果涉及多表查询,了解这些连接的特点很重要. 只有真正了解它们之间的区别,才能正确使用. 1.Union UNION 操作符用于合并两 ...

  8. Server Sql 多表查询、子查询和分页

    一.多表查询:根据特定的连接条件从不同的表中获取所需的数据 多表查询语法: SELECT table1.column, table2.column FROM table1, table2 WHERE ...

  9. sql 两表查询后 更新某表中部分字段

    这是上一个sql更新某表字段的一个延伸,在更新表数据时,实际上会有多表数据查询场景,查询后,只需要更新某一个表中的数据,以下提供两个方法, 第一种使用update 两表查询 update api_ma ...

随机推荐

  1. CF438D The Child and Sequence(线段树)

    题目链接:CF原网  洛谷 题目大意:维护一个长度为 $n$ 的正整数序列 $a$,支持单点修改,区间取模,区间求和.共 $m$ 个操作. $1\le n,m\le 10^5$.其它数均为非负整数且 ...

  2. 解题:EXNR #1 金拱门

    题面 大力统计题 考虑把和的平方拆开,最终就是许多对位置乘起来求和.所以考虑每对位置的贡献,对于$a_{i,j}$和$a_{k,h}(1<=i<=k<=n,1<=j<=h ...

  3. Java基础-SSM之mybatis的树形控件(自关联)

    Java基础-SSM之mybatis的树形控件(自关联) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.准备测试环境(创建数据库表) 1>.创建areas表: use y ...

  4. np.random.choice方法

    np.random.choice方法 觉得有用的话,欢迎一起讨论相互学习~Follow Me def choice(a, size=None, replace=True, p=None) 表示从a中随 ...

  5. SpringBoot入门Demo(Hello Word Boot)

    Spring Boot 是由Pivotal团队提供的全新框架,其设计目的是用来简化新的Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置. ...

  6. dedecms织梦自增索引标签

    在列表中我们经常会需要动态的索引值,那么就可以用到如下标签 [field:global.autoindex/] 默认是从1开始,如果我们想从0或者从其他数开始如下: [field:autoindex ...

  7. pt-table-checksum 3.0.4检测不出主从差异数据

    群里好几位同学问 pt-table-checksum 3.0.4, 主从两个表数据是不一致,为啥检测不出来?前段时间自己也测试过,只是没整理成随笔^_- 一.基本环境 VMware10.0+CentO ...

  8. 图解Android View的scrollTo(),scrollBy(),getScrollX(), getScrollY()

    https://blog.csdn.net/bigconvience/article/details/26697645 Android系统手机屏幕的左上角为坐标系,同时y轴方向与笛卡尔坐标系的y轴方向 ...

  9. RabbitMQ消费端消息的获取方式(.Net Core)

    1[短链接]:BasicGet(String queue, Boolean autoAck) 通过request的方式独自去获取消息,断开式,一次次获取,如果返回null,则说明队列中没有消息. 隐患 ...

  10. 二维码扫描开源库ZXing定制化【转】

    转自:http://www.cnblogs.com/sickworm/p/4562081.html 最近在用ZXing这个开源库做二维码的扫描模块,开发过程的一些代码修改和裁剪的经验和大家分享一下. ...