数据库原理 (4)

这里写图片描述

查询所有办事员和经理的信息

SELECT * FROM emp WHERE job = 'MANAGER' UNION SELECT * FROM emp WHERE job = 'CLERK';

这里写图片描述

注意:使用UNION并操作,比使用关键字OR的性能要好!

返回查询结果相同的部分

这里写图片描述

查询10部门的信息

SELECT * FROM dept INTERSECT SELECT * FROM dept WHERE deptno = 10;

(全部部门和部门10只有部门10是相同的,所以最后返回的是部门10的结果)

这里写图片描述

返回的查询结果是

这里写图片描述

这里写图片描述

SELECT * FROM dept MINUS SELECT * FROM dept WHERE deptno = 10;

这里写图片描述

关系代数特有的关系运算 投影

投影的运算过程:

首先按照j1,j2,…,jk的顺序,从关系R 中取出列序号为j1,j2,…,jk(或属性名序列为Aj1,Aj2,…,Ajk )的k 列,然后除去结果中的重复元组,构成一个以Aj1,Aj2,…,Ajk为属性顺序的k 目关系。

简单来说:取出一个查询结果中某某列,并消除重复的数据,这就是投影!

投影是从列的角度进行的运算

投影的下标可是列序号,也可是列属性名

查询出所有部门的编号

SELECT deptno FROM dept;

查询时的过程:**先查询得出dept表的所有结果,再通过投影运算只提取"deptno"的列数据,如果 SELECT 后边跟的是"*",那么就是投影全部数据!**

这里写图片描述

选择

使用比较运算符、逻辑运算符,挑出满足条件的元组,运算出结果!

查询出工资大于2000的员工的姓名

SELECT ename FROM emp WHERE sal > 2000;

过程:首先查询出emp表的所有结果,使用选择运算筛选得出工资大于2000的结果,最后使用投影运算得出工资大于2000员工的名字!

这里写图片描述

除运算

除运算的实际应用我还没想明白~~~如果有朋友知道除运算能够用在数据库的哪处,请告诉我一声哈。。

我们也了解一下除运算的过程吧:关系R有ABCD,关系S有CD,首先投影出AB(因为S有CD),再用投影出来AB的结果和关系S做笛卡尔积运算。如果做的笛卡尔积运算记录在R关系中找到相对应的记录,那么投影的AB就是结果了!

这里写图片描述

连接运算

连接运算其实就在笛卡尔积运算的基础上限定了条件(某列大于、小于、等于某列),只匹配和条件相符合的,从而得出结果!

自然连接

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpgzdx.html