连接查询:同时涉及两个以上表的查询
连接条件:用来连接两个表的条件
表名1.列名1 <比较运算符> 表名2.列名2
等值连接:连接运算符为=
例:查询每个学生及其选修课程的情况
select Student.*,SC.*
from Student,SC
where Student.Sno=SC.Sno;
例:对上例使用自然连接(消除重复列)
select Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade
from Student,SC
where Student.Sno=SC.Sno;
例:查询选修2号课程且成绩在90分以上的所有学生的学号和姓名
select Student.Sno,Sname
from Student,SC
where Student.Sno=SC.Snoand SC.Cno='2' andSC.Grade>90;
自连接:
一个表与自己进行连接,需要给表起别名以示区别。
由于所有属性名都是同名属性,因此必须使用别名前缀。
例:Course(Cno,Cname,Cpno,Ccredit)
查询每一门课的间接先修课(先修课的先修课)
select A.cno,B.Cpno
from course A,course B
where A.Cpno=B.Cno;
例:MovieStar(name,address,gender,birthdate)
select A.name,B.name
from MovieStar A,MovieStar B
where A.address=B.address and A.name
理解:当一行元组与表中其他元组有关系时,使用自连接。
外连接:
普通连接操作只输出满足连接条件的元组,外连接操作以指定表为连接主体,将主体表中不满足连接条件的元组一并输出。
左外连接:列出左边关系中的所有元组
右外连接:列出右边关系中所有的元组
多表连接:
两个以上的表进行连接
例:查询每个学生的学号、姓名、选修的课程及成绩
select Student.Sno,Sname,Cname,Grade
from Student,SC,Course
where Student.Sno=SC.Snoand SC.Cno=Course.Cno;
上一篇:超级世界波,巴萨小将法耶在塞内加尔国家队处子秀打进处子球 足球超级世界波集锦 塞内加尔后卫法耶集锦
下一篇:等你老了,上衣尽量不要穿“卫衣”和“老头衫”,这些更减龄高级 等老了再穿20岁的衣服 四五十岁的女人穿卫衣时髦又减龄