专门的关系运算

此文转自于网络PPT,感谢作者的艰苦创作,此文可以让人很快理解专门关系代数

l 选择
l 投影
l 连接
l


1. 选择(Selection) 
l 选择针对单个关系中的数据进行操作,属于一元运算符,是指从关系中选择若干行。
l 例如,可以使用选择操作符( σ )从学生关系 S 中选择出那些年龄大于 19 岁的学生。该查询可以用如下的表达式来表示:

  σSage>19(S)

  查询表达式中的下标“Sage>19”给出的是选择条件,只有符合该条件的元组才可以被返回到结果中。









l 选择操作符 σ 通过指定选择条件对某个关系进行查询,查询的结果产生了一个新的关系。
l 这两个关系具有相同的关系模式。
l 新关系是被操作关系中满足条件的元组,是被操作关系的一个子集。



l 对关系 R 的选择操作记作:

  σF(R) = {t|tÎRF(t)= ''}

  其中F表示选择条件,它是一个逻辑表达式,取逻辑值“真”或“假”。选择运算实际上是从关系R中选取使逻辑表达式F为真的元组。 




2.投影(Projection) 

l 投影操作( π )是指从关系中选择若干列。
l 例如,可以使用投影操作符( π )从学生关系 S 中找出所有学生的名字和年龄。该查询可以用如下的表达式来表示:

  πSname,Sage(S)

  查询表达式中的下标“Sname, Sage”指出需要返回的列的名字,其他的列在结果关系中被去掉了。 











l 对关系 R 的投影操作记作:

  πA(R) = {t[A] |t ÎR }

  其中AR中需要保留的属性组,t[A]是从元组t生成的新元组,新元组是从元组t中去掉不包含在属性组A中的属性。



l 关系代数表达式的运算结果总是一个关系。
l 既然这样,可以通过组合各种不同的关系表达式来定义新的关系
l 例如,假设想要找出年龄大于 19 岁的学生的名字和年龄,则可以将前面的两个查询组合起来,表达式如下:

  πSname,Sage(σSage>19(S))

  该查询首先在关系S上进行选择操作,然后再做投影操作。  



3. 连接(

l 两类常用连接运算
1 )等值连接( equijoin
什么是等值连接
当条件 AθB 中的 θ 为“=”的连接运算称为等值连接
等值连接的含义
从关系 R S 的广义笛卡尔积中选取 A B 属性值相等的那些元组


自然连接( Naturaljoin
什么是自然连接
自然连接是一种特殊的等值连接
» 它要求关系 R 中的属性 A 和关系 S 中的属性 B 名字相同
» 在结果中把重复的属性列去掉
自然连接的含义

  RS具有相同的属性组B

        



l 一般的连接操作是从行的角度进行运算。自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。 


l 等值连接举例






l 自然连接举例


                                                                                                       


综合举例 

以学生-课程数据库为例

l 2-1 查询选修了课程号为 C02 的课程的学生的名字。

  πSname((σCno=‘C02’(SC))    S)

该表达式首先从选修关系 SC 中计算出课程号为 C02 的元组集合,然后再和学生关系 S 进行自然连接。
查询结果为 { 胡峻 }
该查询还可以写成下面的形式:

  πSname(σCno=‘C02’(SC   S))




  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MySQL是一种关系型数据库管理系统,它提供了丰富的功能和语法来进行关系运算。下面是一些MySQL中常用的关系运算: 1. 选择(Selection):选择操作用于从表中选择满足指定条件的行。在MySQL中,可以使用SELECT语句来实现选择操作。例如,SELECT * FROM table_name WHERE condition; 可以选择满足条件的所有行。 2. 投影(Projection):投影操作用于从表中选择指定的列。在MySQL中,可以使用SELECT语句来实现投影操作。例如,SELECT column1, column2 FROM table_name; 可以选择指定的列。 3. 连接(Join):连接操作用于将两个或多个表中的数据进行合并。在MySQL中,可以使用JOIN语句来实现连接操作。常见的连接类型包括内连接、外连接和交叉连接。 4. 并(Union):并操作用于将两个或多个查询结果合并为一个结果集。在MySQL中,可以使用UNION或UNION ALL关键字来实现并操作。UNION会去除重复的行,而UNION ALL不会去除重复的行。 5. 差(Difference):差操作用于从一个查询结果中排除另一个查询结果。在MySQL中,可以使用MINUS关键字来实现差操作。但是需要注意的是,MySQL并没有直接支持MINUS操作,可以通过其他方式来实现。 6. 交(Intersection):交操作用于获取两个查询结果的交集。在MySQL中,可以使用INNER JOIN或INTERSECT关键字来实现交操作。 这些是MySQL中常用的关系运算,通过它们可以对数据库中的数据进行灵活的操作和查询。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值