数据库期末总结笔记( 零基础 )-第二章 关系数据库

第二章 关系数据库

一、关系代数的五个基本操作

  • 1.选择(δ):把满足条件的基本元组找出来(元组对应行)

分析:题目中出现找条件一般就用选择(学号在一定范围,性别男还是女,年龄在什么范围…)
例:①查询信息系(IS系)全体学生
δ sdept=‘IS’(Student)

②查询年龄小于20的学生
δ Sage<20(Student)

  • 2.投影(Π):把不需要的列去掉(属性对应列,对某一列或几列属性进行查询)

例:①查询学生的姓名和所在的系

分析:姓名,所在系是两个属性
Π Sname,Sdept(Student)

②查询学生关系Student中都有哪些系
分析:所在系的属性
Π Sdept(Student)

③查询选修了2号课程的学生的学号
分析:选择-2号课程(条件);投影-学号(属性) 注意:要先做条件,再做属性
ΠSno(δCno=‘2’(SC))={201215121,201215122}

  • 3.笛卡尔乘积(X):把两个关系拼接(把两个表每一个元组两两拼接在一起)
    在这里插入图片描述

  • 4.集合差(-):集合中减法

  • 5.集合并(∪):将2个关系中模式相同的元组并起来

二、常用操作

  • 1.集合交(∩):取两者的公共部分
  • 2.连接(▷◁):

(1)条件连接:表1▷◁表2=δ条件(表1X表2)(先按条件完成笛卡尔乘积,再连接)
在这里插入图片描述

(2)等值连接:若(1)中条件都是想等判断,则是等值连接(对两个表做笛卡尔乘积之后,按照相等的条件筛选出来)

(3)▲自然连接:2张表在它们所有的公共属性上做等值连接,并把结果中重复的列去掉

(4)外连接
①左外连接:把连接运算符左边的所有元组都保留下来,不匹配的元组在右边补空值
②右外连接:把连接运算符右边的所有元组都保留下来,不匹配的元组在左边补空值
③外连接:把所有元组都保留下来

连接的作用:所查询信息需要多个表

例:查至少选修一门其直接先行课为5号课程的学生姓名

分析:
看到一个学生表里面的信息不全,没有公共属性;没有课程相关的,所以要先将学生表与课程表Course还有连接在一起,还有SC表这三个表连接起来

选修一门直接先行课为5号课 δcpno=5,查学生姓名但这个课程表并没有学生姓名,所以先对SC表做连接找到5号课对应的课程号,根据课程号能找到对应的学号(属性)

条件:选修一门直接先行课为5号课 δcpno=5(course)
投影:5号课对应的课程号 Πsno
学号对应的学生姓名 Πsno,sname(Student)

Πsname( Πsno(δcpno=‘5’(course)▷◁Πsno,sname(Student))

或者 Πsname(δcpno=‘5’(course)▷◁SC▷◁Πsno,sname(Student))

  • 3.除运算(÷)

同时从行和列的角度运算
条件:查找所有、全部、至少…
除运算一般在一个表中是查不出来的(要是能查出来就用不到除运算)

举例:
除运算:要有公共的属性才能做除法 a:被除数,b:除数(全部覆盖)

首先两表相除要有公共属性,除法的作用是找出被除数中是否有一个或几个元组(除公共属性之外的元组),与除数中所有相关属性,(a和b的公共属性)都有关联,往往全部…作为除数,而所查的信息(属性)作为被除数

例:查询选修了全部课程的学生号码和姓名
分析:
投影:号码和姓名(属性)
除法:全部课程(覆盖)
连接:需要两个表连接在一起
Πsno,cno(SC)÷Πcno(Course)▷◁ Πsno,Sname(Student)

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值