收藏 分销(赏)

3.4-数据查询SQL语句-3.ppt

上传人:胜**** 文档编号:82514 上传时间:2022-06-14 格式:PPT 页数:18 大小:1.03MB
下载 相关 举报
3.4-数据查询SQL语句-3.ppt_第1页
第1页 / 共18页
3.4-数据查询SQL语句-3.ppt_第2页
第2页 / 共18页
3.4-数据查询SQL语句-3.ppt_第3页
第3页 / 共18页
3.4-数据查询SQL语句-3.ppt_第4页
第4页 / 共18页
3.4-数据查询SQL语句-3.ppt_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、3.4-3 数据查询SQL语句多表关联查询,掌握子查询与多表关联查询掌握内连接关联多表查询掌握外连接关联多表查询,【本节学习目标】,一、子查询与多表关联,子查询SQL语句基本格式:SELECT ,FROM WHERE ,在实际应用中,通常需要关联多表才能获得所需的信息。在SELECT查询语句中,可使用子查询方式实现多表关联查询。,例 在选课管理系统数据库中,希望能检索出“计算机学院”的教师名单。,该操作需要关联教师信息表Teacher和学院信息表College,才能获得这些数据。这里可采用子查询方法实现两表关联查询,其查询SQL语句如下:,SELECT TeacherID, TeacherNa

2、me, TeacherTitleFROM TeacherWHERE CollegeID IN (SELECT CollegeID FROM College WHERE CollegeName=计算机学院);,数据查询SQL语句及执行结果:,二、使用连接关联多表查询,在使用多个表查询时,子查询只有在结果数据均来自一个表的情况下才有用。但如果需要从两个或多个表中获取结果数据,就不能使用子查询,而需要采用连接关联多表查询。,连接关联多表查询SQL语句基本格式:SELECT ,FROM ,, ,WHERE ,例 在选课管理系统数据库中,希望获得各个学院的教师信息列表,包括学院名称、教师编号、教师姓名、

3、教师性别、职称等信息。要求按学院名称、教师编号分别排序输出,其查询SQL语句如下:,SELECT B.CollegeName AS 学院名称, A.TeacherID AS 编号, A.TeacherName AS 姓名, A.TeacherGender AS 性别, A. TeacherTitle AS 职称FROM Teacher AS A,College AS BWHERE A.CollegeID=B.CollegeID ORDER BY B.CollegeName, A.TeacherID;,数据查询SQL语句及执行结果:,三、SQL JOIN ON连接查询语句,在SQL语言中,实现多

4、表连接关联查询还可以使用JOINON关键词的语句格式。其中两表连接关联查询的JOINON语句格式如下:,SELECT ,FROM JOIN ON ;,例 在选课管理系统数据库中,希望获得各个学院的教师信息,包括学院名称、教师编号、教师姓名、教师性别、职称等信息。要求按学院名称、教师编号分别排序输出,其查询SQL语句如下:,SELECT B.CollegeName AS 学院名称, A.TeacherID AS 编号, A.TeacherName AS 姓名, A.TeacherGender AS 性别, A. TeacherTitle AS 职称FROM TEACHER AS A JOIN C

5、OLLEGE AS BON A.CollegeID=B.CollegeID ORDER BY B.CollegeName, A.TeacherID;,数据查询SQL语句及执行结果:,四、外部连接,前节介绍的多表连接方式在SELECT查询语句称为内部连接。 在一些特殊情况下,如关联表中一些行的主键与外键不匹配,查询结果集就会丢失部分数据。,例 在选课管理数据库中,希望查询所有开设课程的学生选课情况,包括课程名称、任课教师、选课学生人数。这需要关联课程信息表COURSE、教师信息表TEACHER、开课计划表PLAN、选课注册信息表REGISTER。其连接查询的SQL语句如下:,SELECT C.C

6、ourseName AS 课程名称, T.TeacherName AS 教师, COUNT (R.CoursePlanID) AS 选课人数FROM COURSE AS C JOIN PLAN AS P ON C.CourseID=P.CourseID JOIN TEACHER AS T ON P.TeacherID=T.TeacherID JOIN REGISTER AS R ON P.CoursePlanID=R.CoursePlanIDGROUP BY C.CourseName, T.TeacherName;,数据查询SQL语句及执行结果:,问题:在上面的内连接查询中,只能找出有学生注册

7、的课程名称和选课人数,但不能找出没有学生注册的课程名称。,在SQL 应用中,有时候也希望输出那些不满足连接条件的元组数据。这时,可使用JOINON外连接方式实现。其实现方式有三种形式,具体如下:,LEFT JOIN: 左外连接,即使没有与右表关联列值匹配,也从左表返回所有的行。RIGHT JOIN: 右外连接,即使没有与左表关联列值匹配,也从右表返回所有的行。FULL JOIN: 全外连接,同时进行左连接和右连接,就返回所有行。,例 在选课管理系统数据库中,希望能查询所有开设课程的学生选课情况,包括课程名称、任课教师、选课学生人数。这需要关联课程信息表COURSE、开课计划表CPLAN、教师信

8、息表TEACHER、选课注册信息表REGISTER。若使用左外连接查询,该JOINON连接查询的SQL语句如下:,SELECT C.CourseName AS 课程名称, T.TeacherName AS 教师, COUNT (R.CoursePlanID) AS 选课人数FROM COURSE AS C JOIN PLAN AS P ON C.CourseID=P.CourseID JOIN TEACHER AS T ON P.TeacherID=T.TeacherIDLEFT JOIN REGISTER AS R ON P.CoursePlanID=R.CoursePlanIDGROUP BY C.CourseName, T.TeacherName;,数据查询SQL语句及执行结果:,本节学习结束!,

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
百度文库年卡

猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 应用文书 > PPT模板

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服