多表联合查询
多表联合检索可以通过连接运算来完成,而连接运算又可以通过广义笛卡尔积后再进 行选择运算来实现。
xxxxxxxxxx
Select 列名
From 表1, 表2,...
Where 检索条件
From后面的表相当于做笛卡尔积,而通过不同的检索条件,可以实现等值连接、不等值连接和theta连接
theta连接之等值连接
示例:按“001”号课成绩由高到低顺序显示所有学生的姓名(二表连接)
xxxxxxxxxx
Select Sname From Student, SC
Where Student.S# = SC.S# and SC.C# = ‘001’
Order By Score DESC;
- 多表连接时,如果两个表属性名相同,则需要采用表明.属性名的方式来限定该表属于哪一个表
更名操作
运算符涉及到重名问题,可以通过更名的方式来操作
xxxxxxxxxx
Select 列名 as 列别名,...
From 表名1 as 列表名1...
Where 检索条件
上述定义中的as可以省略
theta连接之不等值连接
求有薪水差额的任意两位教师
Select T1.Tname as Teacher1, T2.Tname as Teacher2 From Teacher T1, Teacher T2
Where T1.Salary > T2.Salary;
Comments NOTHING