1.2.2 关系运算
对于关系数据库的操作,数据查询的应用是比较广泛的。在对数据库进行查询时,要找到用户需要的数据就必须进行关系运算。常见的关系运算有选择运算、投影运算和连接运算。
1.选择运算
选择运算是在关系中找出满足给定条件的元组。选择条件是一个逻辑表达式,取逻辑值“真”或“假”,选择操作的结果是使逻辑表达式的值为真的元组。例如,要从学生表中找出性别为“女”的学生,所进行的操作就是选择运算。图1.2给出的学生表中要查询女学生的信息,就需要用选择运算,查询结果如图1.4所示。选择是从行的角度对关系进行的运算。
图1.4 女生信息
2.投影运算
投影运算是从关系中选择出若干属性列组成新的关系。投影是从列的角度对关系进行的运算。经过投影运算以后,可以得到一个新的关系,不仅取消了原关系中的某些列,而且还可能取消某些元组,因为取消了某些属性列后,就可能出现重复行,根据关系的性质,应取消这些完全相同的行。
例如,从选课成绩表中查询选修了哪些课程时,则可以对“课程编号”进行投影运算。因为在结果中出现了重复的元组,投影运算就会删除这些重复的元组,保证任意两个元组不相同,结果如图1.5所示。
图1.5 查询结果
3.连接运算
连接是从两个关系的笛卡儿积中选取属性间满足一定条件的元组。两个关系做连接运算时,连接条件中应有两个关系中的公共属性名(或者属性名称不一样但具有相同语义、可比的属性)。连接结果是满足一定条件的所有记录。
连接运算中有两种最为常用的连接,一种是等值连接,另一种是自然连接。按照字段值对应相等的条件进行的连接称为等值连接。自然连接是一种特殊的等值连接,是去掉重复属性的等值连接。
一般的连接操作是从行的角度进行运算,但自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。
例如,学生表和选课成绩表中,要查找出学生编号为“121032101”的学生的姓名及其选修的课程和成绩,其结果如图1.6所示。
图1.6 学生编号为“121032101”的学生的选课结果