精华内容
下载资源
问答
  • 数据库集合运算

    千次阅读 2019-05-28 11:13:49
    集合运算 SQL作用在关系(relation,就是指表)上的union、intersect和except运算对应于数学集合论中的∪, ∩和-运算 union、intersect和except运算与select子句不同,它们会自动去除重复 如果想保留所有重复...
    集合运算
    • SQL作用在关系(relation,就是指表)上的 union、intersect 和 except 运算对应于数学集合论中的∪, ∩和-运算

    • union、intersect 和 except 运算与 select 子句不同,它们会自动去除重复

    • 如果想保留所有重复,必须用 union all、intersect all 和 except all

    • 假设一个元组在关系r中重复出现了m次,在关系s中重复出现了n次,那么这个元组将会重复出现:

      • 在 r union all s 中,重复出现 m+n次
      • 在 r intersect all s 中,重复出现 min(m,n)次
      • 在 r except all s 中,重复出现max(0,m-n) 次
    • 举个例子:已知表结构section(course_id,sec_id,semester,year,building,room_number,time_slot_id)

      • 例1,找出在2009年秋季开课,或者在2010年春季开课或两个学习都开课的所有课程
        (select course_id from section where semester =‘Fall’and year = 2009) union (select course_id from section where semester =‘Spring’and year = 2010);

      • 例2,找出在2009年秋季和2010年春季同时开课所有课程
        (select course_id from section where semester =‘Fall’and year = 2009) intersect (select course_id from section where semester =‘Spring’and year = 2010);

      • 例3,找出在2009年秋季开课,但不在2010年春季开课的所有课程
        (select course_id from section where semester =‘Fall’and year = 2009) except (select course_id from section where semester =‘Spring’and year = 2010);

    • 补充

      • 在 SQL Server 2000中,只支持 union 和 union ALL
      • 在 Oracle 中,支持 union,union ALL,intersect 和 Minus;但不支持 Intersect ALL 和 Minus ALL
    • 参考

      • 浙江大学 陈岭《数据库系统原理》课程第四章的集合运算
    展开全文
  • 数据库集合运算与关系代数

    千次阅读 2016-03-17 15:45:44
    D2=年龄集合(AGE)={17,18} 二:笛卡尔积:域上定义的一种集合运算,就是将每个域中的元素与其它域中的元素分别去组合,组合得到的笛卡尔积中每一个元素叫做一个元组。如图,是D1和D2的笛卡尔积。 NAME AGE yang 17 ...

    一:域:具有一组相同类型的数据集合。

    D1=姓名集合(NAME)={yang,li}  
    D2=年龄集合(AGE)={17,18}  

    二:笛卡尔积:域上定义的一种集合运算,就是将每个域中的元素与其它域中的元素分别去组合,组合得到的笛卡尔积中每一个元素叫做一个元组。如图,是D1和D2的笛卡尔积。

    NAME AGE
    yang 17
    yang 18
    li 17
    li 18

    三:关系:在笛卡尔积中取出一个子集,可以构成关系。关系中的每个元素是关系中的元组,关系是笛卡尔积的真子集。

    在D1XD2中取出来一个关系如下所示,关系才是有意义的。
    NAME AGE
    yang 17
    li 18

    四:键

    • 候选键:某个能唯一标识一个元组的属性值或者域称为候选键。
    • 主键:从候选键中选出一个键成为主键。
    • 全键:所有的属性组或者域是这个元组的候选键,我们叫全键。
    • 外键:Y是R关系中的属性组,但不是R关系中的主键,但是是S关系中的主键,此时Y就叫做R关系的外键。

    五:数据库的三条完整性规则

    (1):实体完整性:若属性A是关系R的主属性,则A不能取空值。

    学生(学号,姓名,性别,专业号)  学号为主键,则学号一定不能为空。

    (2):参照完整性:回忆外键的定义,若F是关系R的外键,它与关系S主键相对应,对于R中的每个元组在F上的取值,要么等于S中的主键值,要么为空 。

       学生(学号,姓名,性别,专业号) 主键:学号  
       专业(专业号,专业名)  主键:专业号  
       这里的专业号是学生的外键,它与专业的主键相对应,因此学生专业号就有两种取值,一是其专业对应中的专业号,二是空,表示此学生目前没有被分配专业。  

    (3):用户定义的完整性:任何数据库都应该支持实体完整性和参照完整性,并且对于不同的应用我们应该加一些别的约束条件。

    六:关系代数

    1:并,差,交 按照我们普通的集合运算的方式理解就好了。

    2:笛卡尔积也是这样的一种操作,m元关系就是有m个域。m元关系和n元关系进行笛卡尔积得到(m+n)元关系。

    3:选择:选出在关系R中满足给定条件的诸元组。

    4:投影:选出列组成新的关系,会指定选择的列号和集合名称。

    5:连接:从两个关系的笛卡尔积中选取属性间满足一定条件的元组。

    • 自然连接:自然连接是特殊的等值连接,它会去掉相同的属性组。

    • 等值连接:条件是从R和S的笛卡尔积中选取A,B属性值相等的元组。

    • 外连接:把应该舍弃的全部保留下来,在其他对应属性上用null。

    6:除:对于两个关系R(X,Y)和S(Y,Z),R/S得到的是R在X上满足下面条件的投影,条件是:元素在X分量上x的象集包括S在Y投影上的集合。有关象集的定义在下面:

    R:

    A B C
    a1 b1 c2
    a2 b1 c2
    a3 b4 c6
    a1 b2 c1
    a4 b6 c6
    a2 b2 c1

    S:

    B C D
    b1 c2 d1
    b2 c1 d1

    X的象集是针对R中x的每一个取值而言的:实际上就是对应Y关系上的取值,X关系是A,Y关系是B和C。

    a1的象集:(b1,c2)(b2,c1)
    a2的象集:(b1,c2)(b2,c1)
    a3的象集:(b4,c6)
    a4的象集:(b6,c6)

    找到了X分量上x的象集,我们继续找S在Y投影上的集和,在S关系中,S在Y关系上(也就是B和C关系上)的投影为:

    (b1,c2)(b2,c1)

    下面我们只用x的象集和S在Y关系上的投影({(b1,c2)(b2,c1)})进行对比就行了,发现只有a1和a2的象集包含这个投影,也就是R/S= {a1,a2}

    现在我们会计算除法了,它到底有什么意义:除的意义在于查询全部,就像我们的a的象集中完全包括S在Y关系上的投影的a的值才能被选出来,它们是完全符合S元素的。

    展开全文
  • 传统 sql数据库 集合运算

    千次阅读 2018-11-23 16:57:17
    https://blog.csdn.net/zgcr654321/article/details/82077809  
    展开全文
  • 集合运算:是用来把两个或多个查询的结果集做 并、交、差的集合运算,包含集合运算的查询称 为复合查询。
  •  集合运算是把两个或多个查询的结果集做并/交/差的集合运算,包含集合运算的查询称为复合查询    并集:  UNION:  返回两个集合的并集,去掉重复数据,默认按返回结果集的第一列升序排列    使用规则:  1)多个...

     

    集合:并, 交, 差
        集合运算是把两个或多个查询的结果集做并/交/差的集合运算,包含集合运算的查询称为复合查询
        
        并集:
            UNION:
                返回两个集合的并集,去掉重复数据,默认按返回结果集的第一列升序排列
                
                使用规则:
                    1)多个查询语句所选择的列数和列的数据类型必须一致,列的名字不必相同
                    2)如果多个查询结果都有null值,整个结果中只包含一个null值
                    3)每个查询不能包含自己的order by字句,只能在联合之后使用order by字句
            UNION ALL:
                两个集合的并集,不去掉重复数据,默认不排序(速度快)
                
                使用规则:
                1)多个查询语句所选择的列数和列的数据类型必须一致,列的名字不必相同
                2)如果多个查询结果都有null值,不被去掉
                3)每个查询不能包含自己的order by字句,只能在联合之后使用order by字句
            
        
        交集: 
            INTERSECT:,返回多个查询结果公有行,默认升序排列
            
            使用规则:
                1)多个查询语句所选择的列数和列的数据类型必须一致,列的名字不必相同
                2)相交运算不忽略空值
            
        差集:
            MINUS:返回第一个查询中存在,而第二个查询中不存在的行记录(A集合减去B集合中的记录剩下的记录)
            
            使用规则:
                1)多个查询语句所选择的列数和列的数据类型必须一致,列的名字不必相同
                2)相减运算不忽略空值
                
        PS:
            1)所有的集合运算符与等号的优先级相同
            2)相交和相减运算时Oracle特定的
        
     

     

    展开全文
  • 数据库中的集合运算

    2017-10-24 11:06:35
    数据库中的集合运算
  • Oracle数据库集合运算

    千次阅读 2017-01-06 08:19:12
    集合运算符集合运算符查询组合两个组件查询的结果到一个结果,包含集合运算符的查询称为复合查询。SQL集合运算符如下:集合运算符UNION:All distinct rows selected by either queryUNION ALL:All rows selected ...
  • oracle数据库SQL开发之集合运算集合运算一、联合(UNION)运算二、完全联合 (UNION ALL) 运算三、相交运算(intersect)四、相减运算 (minus) 集合运算 一、联合(UNION)运算 – 返回由任一查询结果集包含的行,并且...
  • 一、集合运算 并集 union、union all(允许重复) 交集 intersect 差集 minus 参与集合运算的各个集合必须列数一直,且类型一致。采用第一个表头作为最后的表头。 二、具体操作 1、并集 union select * from emp...
  • 数据库中,集合运算就是对满足同一规则的记录进行的加减等四则运算。 集合运算符包括:union(并集)、intersect(交集)、except(差集)。 集合运算符可以去除重复行。如果希望集合运算符保留重复行,就需要...
  • 数据库运算

    千次阅读 2020-08-08 13:50:07
    数据库的运算可分为集合运算和关系运算。 一、集合运算 • 从关系的水平方向迚行; • 包括,幵、交、差、笛卡尔积运算。 • 幵运算(R U S):可实现数据的揑入。 • 差运算(R–S):主要实现数据删除。 • 交运算...
  • 数据库运算

    2020-03-10 13:09:02
    文章目录数据库较难理解部分1 除运算1.1关系运算(除...是R(X,Y)关于X(集合运算:{X}=R-S)投影的子集 T中的任一元组,在R中的象集,包含关系S中的Y属性集的所有字段的域 意义:R÷S得到的结果是,一个关系某些...
  • 数据库关系运算

    2017-03-16 19:18:00
    本文就是来讲解数据库中的各种关系运算的!本文不做数学概念的深入,只要理解相关的概念即可! 为什么我们要学习数据库关系运算? 学习和理解关系运算的机理,对于理解关系数据库中的数据查询机制有十分重要的...
  • 传统的集合运算 (并,差,交,笛卡尔积)  专门的关系运算 并(Union) R和S 具有相同的目n(即两个关系都有n个属性) 相应的属性取自同一个域 R∪S 仍为n目关系,由属于R或属于S的元组组成 R∪S = { t|t ...
  • 主题:sql的集合运算 一、表与集合 表(查询结果):记录行集合 集合中的元素:行 集合中运算: 属于:可以把行元素看成只有要一行的集合 差:minus 并:union/union all 交:intersect,mysql要代码实现 ...
  • 欢迎点击「算法与编程之美」↑关注我们!本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。传统的集合运算是二目运算,包括交、并、差、广义笛卡尔积四...
  • 正文如下: 各种运算符如下: ...数据库的传统集合运算包括:并、差、交、笛卡尔积运算。这四种运算都与数学上的同名运算概念相似。 并: 差: 交: 笛卡尔积: 广义笛卡尔积(Extended Cartes...
  • 集合运算

    千次阅读 2018-06-12 22:56:54
    一、表的加减法1、集合运算 集合运算就是对满足同一规则的记录进行的加减等四则运算。 集合运算可以去除重复行。如果希望集合运算保留重复行,就需要使用all选项。 使用union(并集)、intersect(交集)、except(差集)...
  • 集合的三种运算解释: Union:返回两个集合中所有的记录,不包括重复行,同时进行默认规则的排序; Union All:返回两个集合中所有的记录,包括重复行,不进行排序; Intersect:返回同时属于两个集合的记录,不...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 105,174
精华内容 42,069
关键字:

数据库集合运算