带连接谓语的查询是关系数据库中最主要的连接查询,其中包括内连接查询,外连接查询,复合条件连接查询等
1.内连接查询
在表中存在至少一个匹配时,INNER JOIN 关键字返回行 注释:INNER JOIN 与 JOIN 是相同的。
查询学生
--查询学生对各门课程的选修情况(内连接)
select 学生.学号,姓名,课程名,成绩,选修日期
from (学生 inner join 选修 on 学生.学号=选修.学号)
inner join 课程 on 课程.课程号=选修.课程号
等同于如下写法
select 学生.学号,姓名,课程名,成绩,选修日期
from 学生
inner join 选修 on 学生.学号=选修.学号
inner join 课程 on 课程.课程号=选修.课程号
备注:
1)使用类似于"="或"<>"的比较运算符将两个表连接起来,找出多个表共同拥有(满足列=或<>)的记录
2.外连接查询
--查询各门课程的选修情况,是否存在没有学生选修的课程(外连接(left,right,full))
select 课程.课程号,课程名,学号,成绩,选修日期
from 课程 left join 选修 on 课程.课程号=选修.课程号
备注:
1)有时不管另一个表是否有匹配的值,都希望查询结果中包含两个表中的所有行.这时就需要使用 full join(完整外连接)
2)不管第1个表中是否有匹配的数据,结果将包含第2个表中的所有行.这时就需要使用 right join(右向外连接)
3)不管第2个表中是否有匹配的数据,结果将包含第1个表中的所有行.这时就需要使用 left join(左向外连接)
3.复合条件连接查询(带where子句查询)