查询同时涉及两个以上的表,称为连接查询。包括等值连接查询,自然连接查询,非等值连接查询,自身连接查询,外连接查询和复合条件连接查询等
1.等值与非等值连接查询
where 子句中连接两个表的条件称为连接条件 如 Student.Sname=Sc.Sno
比较运算符有= > < <= >= != <> 。当连接运算符为=时,称为等值连接。其他运算符称为非等值连接。
注意:连接查询的结果是把多张关系表合成一张大表,筛选出满足条件的元组。
2.自然连接
把目标列中的重复列去掉称为自然连接(显示查询想要的结果)
如: select Student.Sno,Student.Ssex,SC.Cno
from Student,SC
where Student.Sno=SC.Sno;
建议每个例都加上表名,增强可阅读性。
3.自身连接
表与自己进行连接称为自身连接。为此需要给表取别名
4.外连接(笛卡尔积)
把被舍弃的悬浮元组保存在结果关系中(指不满足条件的元组), 外连接分为左连接和右连接
左连接: select Student.*,SC.* from Student left outer join SC on (Student.Sno=SC.Sno); 把左边Student表中不符合条件的元组也保存在结果关系表中,右反之
5.多表连接
连接两张表以上表的查询
如: select Student.Sno,Student.Ssex,SC.Cno,Course.Grade
from Student,SC, Course
where Student.Sno=SC.Sno and Sc.Cno=Course.Cno;