zoukankan      html  css  js  c++  java
  • sql 多表查询结果验证

    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

  • 相关阅读:
    借用构造函数实现继承
    原型链
    创建对象 之 组合使用构造函数模式和原型模式
    6.原型对象的问题
    Spring MVC
    AOP
    谈谈对Spring IOC的理解
    Mybatis3.x与Spring4.x整合(转)
    手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版)
    Appweb写法
  • 原文地址:https://www.cnblogs.com/MarsDing/p/9856272.html
Copyright © 2011-2022 走看看