多表联合查询
多表联合检索可以通过连接运算来完成,而连接运算又可以通过广义笛卡尔积后再进 行选择运算来实现。
xxxxxxxxxxSelect 列名From 表1, 表2,...Where 检索条件From后面的表相当于做笛卡尔积,而通过不同的检索条件,可以实现等值连接、不等值连接和theta连接
theta连接之等值连接
示例:按“001”号课成绩由高到低顺序显示所有学生的姓名(二表连接)
xxxxxxxxxxSelect Sname From Student, SC Where Student.S# = SC.S# and SC.C# = ‘001’ Order By Score DESC;- 多表连接时,如果两个表属性名相同,则需要采用表明.属性名的方式来限定该表属于哪一个表
更名操作
运算符涉及到重名问题,可以通过更名的方式来操作
xxxxxxxxxxSelect 列名 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