您的位置:首页 > 数据库

SQL 查询数据(三.连接查询) 实例_(学生,课程表,选修表)

2013-04-29 23:51 399 查看
带连接谓语的查询是关系数据库中最主要的连接查询,其中包括内连接查询,外连接查询,复合条件连接查询

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子句查询)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: