资源描述:
《SQL与关系代数对应.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据库关系代数表达式学习 关系代数是关系数据库系统查询语言的理论基础。很有必要学习一下,有些是用代数表达式很方便的东西,用SQL写出来还是挺麻烦的,并不是想象当中那么直接。 一、关系代数的9种操作: 关系代数中包括了:并、交、差、乘、选择、投影、联接、除、自然联接等操作。 五个基本操作: 并(∪)、差(-)、笛卡尔积(×)、投影(σ)、选择(π) 四个组合操作: 交(∩)、联接(等值联接)、自然联接(RS)、除法(÷)注2:等值连接表示先做笛卡尔积(×)之后,对相应列进行选择或等值关联后的结果(仅筛选行、不筛选列)注2:自然连接表示两个关系中若有相同
2、名称的属性,则自动作为关联条件,且仅列出一列 二、关系代数表达式: 由关系代数运算经有限次复合而成的式子称为关系代数表达式。这种表达式的运算结果仍然是一个关系。可以用关系代数表达式表示对数据库的查询和更新操作。 三、举例说明: 设教学数据库中有3个关系: 学生关系S(SNO,SNAME,AGE,SEX) 学习关系SC(SNO,CNO,GRADE) 课程关系C(CNO,CNAME,TEACHER) (1)检索学习课程号为C2的学生学号与成绩------------------------------------SELECTSNO,GRADE
3、FROMSCWHERECNO='C2'------------------------------------πSNO,GRADE(σCNO='C2'(SC))************************************ (2)检索学习课程号为C2的学生学号与姓名------------------------------------SELECTSC.SNO,S.SNAME FROMSC,SWHERESC.SNO=S.SNO ANDSC.CNO='C2'------------------------------------πSNO,SNAME(σCNO
4、='C2'(SSC))此查询涉及S和SC,先进行自然连接,然后再执行选择投影操作。----πSNO,SNAME(S)(πSNO(σCNO='C2'(SC)))自然连接的右分量为"学了C2课的学生学号的集合"。此表达式比前一个表达式优化,执行起来要省时间、省空间。************************************ (3)检索选修课程名为MATHS的学生学号与姓名------------------------------------SELECTSC.SNO,S.SNAME FROMSC,S,CWHERESC.SNO=S.SNO ANDSC.CNO
5、=C.CNO ANDC.CNAME='MATHS'------------------------------------πSNO,SANME(σCNAME='MATHS'(SSCC))************************************ (4)检索选修课程号为C2或C4的学生学号------------------------------------SELECTSNO FROMSCWHERECNO='C2' ORCNO='C4'------------------------------------πSNO(σCNO='C2'∨CNO='C
6、4'(SC))************************************ (5)检索至少选修课程号为C2或C4的学生学号------------------------------------SELECTSA.SNO FROMSCASSA,SCASSBWHERESA.SNO=SB.SNO ANDSA.CNO='C2' ANDSB.CNO='C4'------------------------------------π1(σ1=4∧2='C2'∧5='C4'(SC×SC))************************************ (
7、6)检索不学C2课的学生姓名与年龄------------------------------------SELECTSNAME,AGE FROMSMINUSSELECTS.SNAME,S.AGE FROMSC,SWHERESC.SNO=S.SNO ANDSC.CNO='C2'(Oracle)------------------------------------πSNAME,AGE(S)-πSNAME,AGE(σCNO='C2'(SSC))************************************ (7)检索学习全部课