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子句查询)
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子句查询)
相关文章推荐
- SQL 查询数据(二.嵌套查询) 实例_(学生,课程表,选修表)
- SQL 查询数据(四.集合查询) 实例_(学生,课程表,选修表)
- SQL 查询数据(一.单表查询) 实例_(学生,课程表,选修表)
- SQL 综合应用(2.数据控制) 实例_(学生,课程表,选修表)
- SQL 综合应用(1.创建临时表,为后续查询所用) 实例_(学生,课程表,选修表)
- SQL 数据更新(插入数据,修改数据,删除数据) 实例_(学生,课程表,选修表)
- SQL 定义与使用数据库及表 实例_(学生,课程表,选修表)
- SQL查询选修了全部课程的学生姓名解析
- 使用PL/Sql查询具有层次连接的数据
- SQL多表连接查询(详细实例)
- oracle 数据库的管理工具 PL/SQL_Developer 的简易使用 与Java 连接并查询显示出数据
- 学生表/教师表/课程表/成绩表常见SQL查询
- java JDBC 连接数据库查询数据与直接使用sql的疑问
- SQL两个表连接查询去掉重复数据的方法
- [sql]使用自连接查询多对一数据
- SQL语句远程连接其他数据库查询表数据
- 关系数据库SQL之高级数据查询:去重复、组合查询、连接查询、虚拟表
- 用SQL语言进行复杂查询:对各表中的数据进行不同条件的连接查询和嵌套查询: 1)查询每个学生及其选课情况; 2)查询每门课的间接先修课
- oracle12c JSON数据 使用SQL语句实现多表左外连接 显示无效数据 分页查询
- SQL多表连接查询(详细实例)