当前课程知识点:数据库系统原理与开发 >  第3章 数据库操作SQL语言 >  3.4 数据查询SQL语句 >  3.4.3 多表关联查询

返回《数据库系统原理与开发》慕课在线视频课程列表

3.4.3 多表关联查询在线视频

下一节:3.5 数据控制SQL语句

返回《数据库系统原理与开发》慕课在线视频列表

3.4.3 多表关联查询课程教案、知识点、字幕

同学们,大家好!

我是主讲教师陆鑫

本节将学习数据库课程

第3.4小节 数据查询SQL语句的多表关联查询

本节学习目标如下:

1)掌握子查询与多表关联查询

2)掌握内连接关联多表查询

3)掌握外连接关联多表查询

下面开始学习数据查询SQL语句的多表关联查询

一、子查询与多表关联

在实际应用中

通常需要关联多表才能获得所需的信息

在SELECT查询语句中

可使用子查询方式实现多表关联查询

子查询SQL语句基本格式如下:

例如 在选课管理系统数据库中

希望能检索出“计算机学院”的教师名单

该操作需要关联教师信息表Teacher和学院信息表College

才能获得这些数据

这里可采用子查询方法实现两表关联查询

其查询SQL语句如下

数据查询SQL语句及执行结果:

将该SQL语句提交数据库服务器执行

其操作界面如下

在数据库管理工具查询编辑页面中

输入查询SQL语句

然后点取“运行”按钮

若该SQL语句正确执行

则该页面的数据输出框显示结果集数据

二、使用连接关联多表查询

在使用多个表查询时

子查询只有在结果数据均来自一个表的情况下才有用

但如果需要从两个或多个表中获取结果数据

就不能使用子查询

而需要采用连接关联多表查询

连接关联多表查询SQL语句基本格式如下

在连接关联多表查询SQL语句中

关系表之间通过主键与外键的关联实现连接

查询结果数据集来自多个表中的属性列

例如 在选课管理系统数据库中

希望获得各个学院的教师信息列表

包括学院名称、教师编号、教师姓名、教师性别、职称等信息

要求按学院名称、教师编号分别排序输出

其查询SQL语句如下

首先输出指定列

FROM 教师表和学院表

加入WHERE子句条件

加入排序条件

数据查询SQL语句及执行结果如下:

将该SQL语句提交数据库服务器执行

其操作界面如下

在数据库管理工具查询编辑页面中

输入查询SQL语句

然后点取“运行”按钮

若该SQL语句正确执行

则该页面的数据输出框显示结果集数据

三、SQL JOIN …ON连接查询语句

在SQL语言中

实现多表连接关联查询还可以使用JOIN…ON关键词的SQL语句格式

其中两表连接关联查询的JOIN…ON的SQL语句格式如下:

JOIN…ON语句还可以支持多于两个表的连接关联查询

例 在选课管理系统数据库中

希望获得各个学院的教师信息

包括学院名称、教师编号、教师姓名、教师性别、职称等信息

要求按学院名称、教师编号分别排序输出

其查询SQL语句如下:

首先输出目标列数据

指定从教师表连接学院表

加入连接条件

加入排序条件

数据查询SQL语句及执行结果如下:

将该SQL语句提交数据库服务器执行

其操作界面如下

在数据库管理工具查询编辑页面中

输入查询SQL语句

然后点取“运行”按钮

若该SQL语句正确执行

则该页面的数据输出框显示结果集数据

四、外部连接

前节介绍的多表连接方式在SELECT查询语句称为内部连接

在一些特殊情况下

如关联表中一些行的主键与外键不匹配

查询结果集就会丢失部分数据

例如 在选课管理数据库中

希望查询所有开设课程的学生选课情况

包括课程名称、任课教师、选课人数

这需要关联课程信息表COURSE、教师信息表TEACHER

开课计划表PLAN、选课注册信息表REGISTER

其连接查询的SQL语句如下:

首先输出课程名称、教师

以及选课人数

从课程表连接开课计划表

加入教师表

加入注册表

按照课程名称、教师姓名进行分组

数据查询SQL语句及执行结果:

将该SQL语句提交数据库服务器执行

其操作界面如下

在数据库管理工具查询编辑页面中

输入查询SQL语句

然后点取“运行”按钮

若该SQL语句正确执行

则该页面的数据输出框显示结果集数据

问题:在上面的内连接查询中

只能找出有学生注册的课程名称和选课人数

但不能找出没有学生注册的课程名称

在SQL 应用中

有时候也希望输出那些不满足连接条件的元组数据

这时,可使用JOIN…ON外连接方式实现

其实现外连接有三种形式

具体如下:

左连接

即使没有与右表关联列值匹配

也从左表返回所有的行

右连接

即使没有与左表关联列值匹配

也从右表返回所有的行

全连接

同时进行左连接和右连接

就返回所有行

例如 在选课管理系统数据库中

希望能查询所有开设课程的学生选课情况

包括课程名称、任课教师、选课学生人数

这需要关联课程信息表COURSE、开课计划表CPLAN

教师信息表TEACHER、选课注册信息表REGISTER

若使用左外连接查询

该JOIN…ON连接查询的SQL语句如下:

输出课程名称、教师姓名

计数选课人数

指定从课程表连接开课计划表

连接教师表

左外连接注册表

按照课程名称、教师姓名进行分组

数据查询SQL语句及执行结果:

将该SQL语句提交数据库服务器执行

其操作界面如下

在使用左外连接的查询中

结果集包括所有开设课程的选课人数

即便一些课程选课人数为0

好了,本节学习结束!

数据库系统原理与开发课程列表:

第1章 数据库系统概论

-1.1 数据库及其系统概念

--1.1 数据库及其系统概念

-1.2 数据库技术发展

--1.2 数据库技术发展

-1.3 数据库应用系统

--1.3 数据库应用系统

-1.4 典型数据库管理系统

--1.4 典型数据库管理系统

-1.5 PostgreSQL对象-关系数据库系统软件

--1.5 PostgreSQL对象-关系数据库系统软件

-第1章 数据库系统概论--本章单元测试

-第1章 数据库系统概论--本章重点问题讨论

第2章 数据库关系模型

-2.1 关系及其相关概念

--2.1.1关系及其相关概念-1

--2.1.2关系及其相关概念-2

-2.2 关系模型原理

--2.2.1关系模型原理-1

--2.2.2关系模型原理-2

-2.3 PostgreSQL数据库关系操作实践

--2.3 PostgreSQL数据库关系操作实践

-第2章 数据库关系模型--本章单元测试

-第2章 数据库关系模型--本章重点问题讨论

第3章 数据库操作SQL语言

-3.1 SQL语言概述

--3.1 SQL语言概述

-3.2 数据定义SQL语句

--3.2.1数据定义SQL语句-1

--3.2.2数据定义SQL语句-2

--3.2.3数据定义SQL语句-3

-3.3 数据操纵SQL语句

--3.3 数据操纵SQL语句

-3.4 数据查询SQL语句

--3.4.1单表数据查询

--3.4.2 内置函数与分组统计

--3.4.3 多表关联查询

-3.5 数据控制SQL语句

--3.5 数据控制SQL语句

-3.6 视图SQL语句

--3.6 视图SQL语句

-3.7 PostgreSQL数据库SQL实践

--3.7 PostgreSQL数据库SQL实践

-第3章 数据库操作SQL语言--本章单元测试

-第3章 数据库操作SQL语言--本章重点问题讨论

第4章 数据库设计与实现

-4.1 数据库设计概述

--4.1 数据库设计概述

-4.2 E-R模型方法

--4.2.1 E-R模型方法-1

--4.2.2 E-R模型方法-2

-4.3 数据库建模设计

--4.3.1 数据库建模设计-1

--4.3.2 数据库建模设计-2

-4.4 数据库规范化设计

--4.4.1 数据库规范化设计-1

--4.4.2 数据库规范化设计-2

-4.5 数据库设计模型SQL实现

--4.5 数据库设计模型SQL实现

-4.6 基于Power Designer的数据库设计建模实践

--4.6 基于Power Designer的数据库设计建模实践

-第4章 数据库设计与实现--本章单元测试

-第4章 数据库设计与实现--本章重点问题讨论

第5章 数据库管理

-5.1 数据库管理概述

--5.1 数据库管理概述

-5.2 事务管理

--5.2 事务管理

-5.3 并发控制

--5.3.1 并发控制-1

--5.3.2 并发控制-2

-5.4 安全管理

--5.4.1 安全管理-1

--5.4.2 安全管理-2

-5.5 数据库备份与恢复

--5.5 数据库备份与恢复

-5.6 PostgreSQL数据库管理项目实践

--5.6 PostgreSQL数据库管理项目实践

-第5章 数据库管理--本章单元测试

-第5章 数据库管理--本章重点问题讨论

第6章 数据库应用编程

-6.1 数据库连接技术

--6.1.1 数据库连接技术-1

--6.1.2 数据库连接技术-2

-6.2 数据库存储过程

--6.2 数据库存储过程

-6.3 数据库触发器

--6.3 数据库触发器

-6.4 数据库游标

--6.4 数据库游标

-6.5 嵌入式SQL编程

--6.5 嵌入式SQL编程

-第6章 数据库应用编程--本章单元测试

-第6章 数据库应用编程--重点问题讨论

第7章 NoSQL数据库技术

-7.1 NoSQL数据库概述

--7.1.1 NoSQL数据库概述-1

--7.1.2 NoSQL数据库概述-2

--7.1.3 NoSQL数据库概述-3

-7.2 列存储数据库

--7.2.1列存储数据库-1

--7.2.2列存储数据库-2

-7.3 键值对数据库

--7.3.1 键值对数据库-1

--7.3.2 键值对数据库-2

--7.3.3 键值对数据库-3

-7.4 文档型数据库

--7.4.1文档型数据库-1

--7.4.2文档型数据库-2

--7.4.3文档型数据库-3

-7.5 图形数据库

--7.5.1图形数据库-1

--7.5.2图形数据库-2

--7.5.3 图形数据库-3

-7.6 HBase数据库项目实践

--7.6 HBase数据库项目实践

-第7章 NoSQL数据库技术--本章单元测试

-第7章 NoSQL数据库技术--本章重点问题讨论

期末考试

-期末测试--期末测试

3.4.3 多表关联查询笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。