关系代数用对关系的运算来表达查询,运算对象是关系,结果得到关系 关系可以理解为一张二维表,例如一张学生表,就是一个关系,关系代数运算就是我们写sql的一些查询操作,操作表生成新的表或者视图 关系代数的运算有两种: 传统的集合运算符:从表的行的角度进行运算,所以需要运算的关系R、S具有相同的属性列的类型、属性列数目 专门的关系运算符:涉及到列、行,没有那些限制 其他:选择、投影、并、差、笛卡尔积是查询操作的基本操作,其他操作可以由这5种基本操作推出 关于这些操作的概念是很晦涩的,结合具体的SQL来理解 并操作两个关系R、S,得到的关系由属于R或S的元组组成,就是逻辑并 对应的Sql操作就是 这里主要谈的是并的思想,两个关系的并运算,and的话并不是两个关系的运算 差:关系R与关系S的差由属于R而不属于S的所有元组组成 很明显,完成差的查询操作只需要从R中排除R与S交集关系即可,用 实际上存在 换成Sql Server试试: 但是没必要记这么多关键字,了解思想就行 m个属性的关系R与n个属性的关系S,笛卡尔积为(m+n)列的元组的集合,行数为(m*n) 我们常用的没有限制的表连接就是笛卡尔积 选择又称为限制,在关系R中选择满足给定条件的元组,也就是筛选行 sql语句对应的就是我们的 投影:关系R上的投影是从R中选择出若干属性列组成新的关系 下面得到的结果就是一个新的关系 五种基本操作:并、差、笛卡尔积、选择、投影 就是这么简单 相关的概念很晦涩但是完整,我们学习时需要通俗 由这5个基本查询操作,可以组成复杂的关系运算,例如连接 连接:从两个关系的笛卡尔积中选取属性间满足一定条件的元组 连接可以分为: 内外连接的区别在与那些被舍弃的元组是否保存到了结果中,通过后面的sql来理解 teacher、student表: 内连接: 仅取出 外连接:R、S中舍弃的元组也保存到结果中,而在其他属性上填空值 Sql Server: 这两个表是这样的: 可以获得查询结果: Mysql通过左连接 union 右连接就不实现了
关系代数运算
并(union)
Union
第一次查询的id=1的关系 并 第二次查询id=2的关系 的结果:and
的结果也是这样的,为什么不说and呢?
差(except)
not in
关键字sql查询except
关键字,Mysql不支持select * from 学生 where 学号 < 3 except select * from 学生 where 学号 = 1;
笛卡尔积(cartesian product)
选择(Selection)
where
关键字
投影(projection)
这不就是select语句吗?从表R中选择一些属性组成新的关系
小结
连接(join)
select * from student,teacher where student.id = teacher.tid;
student.id = teacher.tid
的元组
select * from student,teacher where student.id > teacher.tid;
select * from student left join teacher on student.id = teacher.tid;
select * from teacher right join student on student.id = teacher.tid;
MySQL不支持full join关键字,但可以通过左连接 union 右连接实现
select * from 学期成绩 R full join 课程注册 S on R.课程编号 = S.课程编号;
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算