【第6周】关系代数及对应的SQL.pptx

上传人:bao****ty 文档编号:144356178 上传时间:2020-09-07 格式:PPTX 页数:18 大小:183.93KB
返回 下载 相关 举报
【第6周】关系代数及对应的SQL.pptx_第1页
第1页 / 共18页
【第6周】关系代数及对应的SQL.pptx_第2页
第2页 / 共18页
【第6周】关系代数及对应的SQL.pptx_第3页
第3页 / 共18页
【第6周】关系代数及对应的SQL.pptx_第4页
第4页 / 共18页
【第6周】关系代数及对应的SQL.pptx_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《【第6周】关系代数及对应的SQL.pptx》由会员分享,可在线阅读,更多相关《【第6周】关系代数及对应的SQL.pptx(18页珍藏版)》请在金锄头文库上搜索。

1、第6周 关系代数运算(二),一、广义笛卡尔积 二、连接(条件连接、等值连接、自然连接、自身连 接、左外连接、右外连接) 三、除法 四、举例,一、(广义)笛卡尔积(P53),关系R(n列,k1元组)与关系S(m列,k2元组)的(广义)笛卡尔积是一个(n+m)列k1*k2个元组集合。,student与sc的广义笛卡尔积为3*2=6行,5+3=8列。将学生表的每一行与选课表的每一行进行连接,student表(5列,3行),sc 表(3列,2行),广义笛卡尔积的查询表达,查询的关系代数表达(P53) 关系代数表达式:S SC 查询的SQL表达 SQL表达式:select student.*,sc.*

2、from student,sc; 注意:广义笛卡尔积的结果值没有意义!要使其有意思需要加上连接条件,即从中选出满足条件的元组。,二、连接运算,条件连接 等值连接(特殊的条件连接) 自然连接(特殊的等值连接) 自身连接 左外连接 右外连接,条件连接(P57),在两个关系student、sc的广义笛卡尔积中选择属性间满足一 定条件的元组 条件为:student.snosc.sno(6个中1个满足条件) 条件为:student.sno=sc.sno(6个中2个满足条件),条件连接的表达,条件为student.snosc.sno s. Sno=sc.sno 含义:从广义笛卡尔积S SC中选择满足比较运

3、算表达式AB的元组,A、B分别为S、SC 上度数相等且可比的属性组。,连接条件,无实际意义,特殊条件连接:等值连接,等值连接与自然连接,等值连接是特殊的条件连接(比较运算表达式AB 中, 为“=”的连接运算符) 等值连接的问题:列重复 自然连接是特殊的等值连接(去掉重复列) 关系代数表达自然连接运算:S SC SQL表达式:select student.*,o,sc.grade from student,sc where student.sno=sc.sno; sc.grade的前缀sc.可以省略,基于是否唯一出现在某一个表中。考题! 例子查询每个学生及其选修课程情况(给出学生与课程信息)(分

4、别考虑等值与自然连接)P100-101,等值连接,自然连接,自身连接、左外连接、右外连接,自身连接P102 例35查询每门课的间接先修课 select o,second.cpno from course first , course second /*取两个别名*/ where first.cpno=o; first表: (临时表) second 表: (临时表) 查询结果: (可以理解成 先连接 后投影) 其对应的关系代数表达式:,自身连接、左外连接、右外连接,左外连接P103列出左边关系(student)中的所有元组 select student.sno, sname, ssex, sag

5、e, sdept, cno,grade from student left outer join sc on student.sno=sc.sno; 学生表: 选课表sc: (student) Student sc自然连接:(左边关系某些元组未出现在目标表中) 左外连接的结果:,自身连接、左外连接、右外连接,右外连接P103,列出右边关系(sc)中的所有元组 select student.sno, sname, ssex, sage, sdept, cno,grade from student right outer join sc on student.sno=sc.sno; 学生表: 选课

6、表sc: (student) Student sc自然连接:(左边关系某些元组未出现在目标表中) 右外连接:,三、除法运算(SQL表达后讲),例子1: P59例6 关系R: 关系S: R S: R中a1的象集包含了S在(B,C)属性组上的投影,关系R中, a1的象集:(b1,c2),(b2,c),(b2,c1) a2的象集:(b3,c7),(b2,c3) a3的象集:(b4,c6) a4的象集:(b6,c6),三、除法运算(SQL表达后讲),例子2: P60例7查询至少选修了1、3号课程的学号 关系Sno,Cno(SC) 临时关系K: R S: 空 问:如果希望2010002出现在目标表中,S

7、C表中需要增加什么记录?,关系Sno,Cno(SC) 中, 2010001的象集:(1) 2010002的象集:(2),四、举例P60例8,P60 例8 查询选修了2号课程的学生学号 关系代数表达式:sno(cno=2(sc)) SQL表达式子:select sno from sc where cno=2 问题:题目改为,查询选修了2号课程学生的学号及姓名,如何表达查询?(连接查询及嵌套查询) 连接查询 关系代数: sno,sname(cno=2(scS)) SQL:select s.sno,sname from sc,s where sc.sno=s.sno and cno=2 学生表: 选

8、课表sc: (student) 查询结果:,四、举例P60例8,嵌套查询 关系代数表达式: sno(cno=2(sc)) sno,sname (s) SQL表达式: select sno,sname from s where sno in (select sno from sc where cno=2) 嵌套查询的SQL语句的求解过程 先子查询(select sno from sc where cno=2) SC表: 查询结果: 后外查询 student表: sno in (select sno from sc where cno=2),四、举例P60例9-1,P60【例9】查询至少选修了一门

9、其直接先行课为1号课程的学生姓名(关系代数及SQL表达) 嵌套查询: 第一步:求先行课为1号课程的课程号,涉及课程表. P1:cno(cpno=1(coruse)) -关系代数表达式 Select cno from c where cpno=1 -SQL表达式 第二步:选了上述课程的学生学号 P2:sno(P1SC ) Select sno from sc where cno in (Select cno from c where cpno=1) 第三步:根据学号求姓名 P2Sno,Sname(Student),投影出Sname Select sno,sname from s where sn

10、o in (Select sno from sc where cno in (Select cno from c where cpno=1),四、举例P60例9-2,P60【例9】查询至少选修了一门其直接先行课为1号课程的学生姓名(关系代数及SQL表达) 连接查询: 关系代数表达:Sno,Sname (cpno=1(coruse)SCS) Select s.sno,sname from s,sc,c where cpno=1 and s.sno=sc.sno and o=o 问题:s.sno的前缀s.是否可以省略,四、举例P60例9-3,P60【例9】查询至少选修了一门其直接先行课为1号课程的

11、学生姓名(关系代数及SQL表达) 嵌套查询: 第一步:求先行课为1号课程的课程号,涉及课程表. P1:cno(cpno=1(coruse)) -关系代数表达式 Select cno from c where cpno=1 -SQL表达式 第二步:选了上述课程的学生学号 P2:sno(P1SC ) Select sno from sc where cno in (Select cno from c where cpno=1) 第三步:根据学号求姓名 P2Sno,Sname(Student),投影出Sname Select sno,sname from s where sno in (Select sno from sc where cno in (Select cno from c where cpno=1) 连接查询: Sno,Sname (cpno=1(coruse)SCS) Select s.sno,sname from s,sc,c where cpno=1 and s.sno=sc.sno and o=o (问题:s.sno的前缀s.是否可以省略),

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号