这个知识点一般出现在上午题。
这个知识点最为重要,需要多加记忆和理解。其中有 并 、 交 、 差 、 笛卡尔积 、 选择 、 投影 、 连接 、 除 。其中一元运算符只有 选择 和 投影 ,剩余的都是二元运算符。
1、Θ连接运算定义一个关系,它包含R和S的笛卡尔积中所有满足谓词F的元组,其中谓词F是比较运算符(<、≤、>、≥、=、≠)之一。
其中两个运算公示是相等的:
2、自然连接运算对两个关系中所有具有相同名称的属性执行等接运算。自然连接的维数等于关系R与S的维数之和减去X中属性的个数。
3、外连接运算是在连接两个关系时,经常会出现一个关系中某些元组无法在另一个关系中找到匹配元组的情况,换句话说,就是这些元组在连接属性上不存在匹配值。但可能仍希望这些元组出现在结果中,这时就要用到外连接。
4、半连接运算执行了两个关系的连接后,再将结果投影到第一个参与运算的关系的所有属性上。半连接的优点之一就是减少必须参与连接的元组的数目。
关系数据库管理系统能实现的专门关系运算,包括选择运算、投影运算、连接运算,如下:
1、选择运算,从给定的关系中选择满足限定条件的那些元组。
2、投影运算,从给定关系的所有属性中按所需顺序选取指定的属性组。
3、连接运算,将两个不同关系的属性名拼接成一个大的关系模式,两个关系中具有相同性质的属性值应满足限定条件,这些元组拼接后的新元组集体组成联接后的新关系。
关系运算包括四种:投影、选择、连接、除。
在任何一种数据库管理系统中(包括MySQL),投影对应于SELECT子句,选择对应于WHERE子句,连接对应于JOIN子句,但除没有直接的对应语句,需要根据题目的实际含义书写复杂的SQL,通常都会包含子查询。
传统的数学集合的关系运算和数据库专有的关系运算
数据库本身是一个二维的表,就相当于是一个数学的集合。
有的时候需要两个表进行运算,比如,找到两个表中相同的部分,这个的运算机制就是传统的集合运算中的“交”。
有的时候需要表本身进行计算,比如,只需要显示表中某一列的数值,这个就是关系的专门运算“投影”。
其余的运算你可以自己找找,基本原理都很简单的,一看就能明白。
运算符是一些符号,它们能够用来执行算术运算、字符串连接、赋值以及在字段常量和变量之间进行比较。在SQL Server 2005中,运算符主要有以下六大类:算术运算符、赋值运算符、位运算符、逻辑运算符以及字符串串联接运算符。
1 算术运算符:可在两个表达式上执行数学运算,两个表达式可以是数字数据类型分类的任何数据类型。包括: + , - , , / 和取模( % )。
2 赋值运算符:Transact - SQL中的运算符( = ),( = )还可以在列标题和为列定义值的表达式之间建立关系。
3 位运算符:在整形数据或者二进制数据(image类型除外)之间执行位 *** 作。
运算符 & (按位AND), | (按位OR), ^ (按位异或XOR)都是两上 *** 作数。
4 比较运算符:比较两个表达式的大小或是否相同,其比较的结果是布尔值,即:true(表达式结果为真)、false、以及unknown。
注: text , ntext ,image数据类型不可用。
5 逻辑运算符:可把多个逻辑表达式连接起来。包括AND,OR和NOT等运算符,返回带有true,false值和布尔数据类型。
6 字符串串联运算符:用 + 加号进行字符串串联,例:语句select ' tai ' + ' hang ' ,其结果为taihang。
运算符的优先级从高到低排列:
1 括号:( )
2 乘、除、求模运算符: 、 / 、 %
3 加减运算符: + 、 -
4 比较运算符: = , > , < , >= , <= , <> , != , !> , !<
5 位运算符: ^ , & , |
6 逻辑运算符: NOT
7 逻辑运算符: AND
8 逻辑运算符: OR
关系代数是一门抽象的查询语言,它用对关系的运算来表达查询。
运算对象、运算符、运算结果是运算的三大要素。关系代数的运算对象是关系,运算结果也是关系。
设R和S是n元关系,而且两者各对应属性的数据类型也相同。R和S的并 *** 作定义为:
条件:① 等目、同元,即他们的属性数目必须相同 ② 对任意i,r的第i个属性域和s的第i个属性域相同
如:Πname(instructor)∪Πname(student)
简单来说就是: R和S所有关系都组合在一起, 重复的就不写
p是选择 *** 作,p用的是逻辑连接词,如∧、∨、┐
注:执行选择时,选择条件必须是针对同一元组中的相应属性值代入进行比较
简单来说就是: 把符合元组的拿出来
a1,a2等是属性名,r是关系名。其结果为保留此k列的值,并删除重复的行
条件:①等目、同元,即他们的属性数目必须相同 ②对任意i,r的第i个属性域和s的第i个属性域相同(和并运算一样的条件)
简单来说就是:因为是R-S, 找R在S关系中没有的
假设R的属性和S的属性没有交集就如图一,如果R和S的属性有交集,那么必须重命名这些有交集的属性
返回表达式E的结果,并赋给它名字X,同时将属性重命名为A1,A2An
例一:找出贷款额大于1200的元组
例二:找出贷款大于1200的贷款号
例三:找出有贷款或有账户两者兼有的所有客户姓名
例四:找出至少有一个贷款及一个账户的客户姓名
例五:找出Perryridge分支机构有贷款的顾客姓名
这个查询运用了两个关系,这个时候就要运用笛卡尔积
为什么要做“σ borrowloan-number = loanloan-number”的判断?因为这里面的组合很多,而我们要去除掉没有意义的组合
查询二要比查询一更好一点,因为borrower x loan的数据有可能是很庞大的,降低了查询效率,而查询二先做了选择再进行笛卡尔积运算,数据量相较小一点。
例六:找出在Perryridge分支机构有贷款,但在其他分支机构没有账号的顾客姓名
例七:找出银行中最大的账户余额
投影(projection)
关系R的投影运算是从R中选择某些属性的所有值组成的新关系。换言之,投影运算的结果是一个表的垂直方向的子集。关系R的投影运算记为:πA(R)。其中,A为R的一组属性列。投影的结果将消除重复的元组。
选择(selection)
关系R的选择运算是从关系R中选择满足指定条件(用F表示)的元组构成的新关系。换言之,选择运算的结果是一个表的水平方向的子集。关系R的选择运算记为:σF(R)。
其中,F是包括属性名的逻辑表达式,运算符有算术比较运算符:<,≤,>,≥,=,≠,和逻辑运算符:¬¬┐,∨,∧(非、或、与)。
连接(join)
连接运算是关系的二目运算。关系R与关系S的连接运算是从两个关系的广义笛卡尔积中选取属性间满足一定条件(称为连接条件,记为AθB)的元组形成一个新关系。
除(divide)
设关系R的属性可以分成互不相交的两组,用X、Y表示(X∩Y为空集,X∪Y为R的全部属性),则关系R可以表示为:R(X,Y)。
以上就是关于数据库关系运算全部的内容,包括:数据库关系运算、关系数据库管理系统能实现的专门关系运算包括、mysql的 四种关系运算等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)