MySQL数据库多表查询内连接实例解析
需积分: 10 43 浏览量
更新于2024-08-16
收藏 2.14MB PPT 举报
"这篇教程主要介绍了MySQL数据库中的多表查询,特别是内连接的概念,并通过实例展示了内连接的使用方法。"
在MySQL数据库中,多表查询是数据操作的重要部分,尤其是内连接(INNER JOIN),它用于从两个或更多表中返回匹配的行。内连接基于指定的条件,在这个例子中,条件是`C.StudentID = S.SNo`,这表示`Sc`表中的`StudentID`必须与`Students`表中的`SNo`相等。这样的连接方式会返回那些在两表中都有对应匹配记录的结果。
首先,我们来看第一个内连接的例子:
```sql
SELECT S.SName, C.CourseID, C.Grade
FROM Sc AS C
INNER JOIN Students AS S
ON C.StudentID = S.SNo;
```
在这个查询中,`Sc`表(课程表)和`Students`表(学生表)被连接,连接依据是学生的学号`SNo`和课程的学生ID`StudentID`。结果集包含了匹配的`SName`(学生姓名)、`CourseID`(课程ID)和`Grade`(成绩)。返回的结果是那些学生和他们对应的课程及成绩,只有当`Sc`表中的`StudentID`存在于`Students`表中的`SNo`时才会显示。
第二个例子,虽然交换了表的顺序,但结果仍然相同:
```sql
SELECT S.SName, C.CourseID, C.Grade
FROM Students AS S
INNER JOIN Sc AS C
ON C.StudentID = S.SNo;
```
这是因为内连接是根据指定的条件进行的,不论表的顺序如何,只要满足条件的匹配行都会被返回。
第三个例子使用了不等于(<>)操作符,这将导致不同的结果:
```sql
SELECT S.SName, C.CourseID, C.Grade
FROM Students AS S
INNER JOIN Sc AS C
ON C.StudentID <> S.SNo;
```
在这里,条件变为`C.StudentID`不等于`S.SNo`,这将返回所有在`Students`表中的学生,但他们的`StudentID`不在`Sc`表的`StudentID`中,反之亦然。因此,这个查询不会返回任何匹配的记录,因为没有学生ID在两表中是不匹配的。
在讲解数据库基础时,提到了数据库的一些基本概念。数据是数据库中存储的基本元素,可以是文字、图形、图像等各种形式,并且数据与其语义是不可分割的。数据库(Database)是一个存储和管理数据的仓库,按照数据结构组织。随着技术的发展,数据库经历了从人工管理到文件系统,再到现在的数据库系统阶段,其中关系型数据库是最广泛应用的类型。关系模型是目前主流的数据模型,它的数据结构简单,允许通过键(如`StudentID`和`SNo`)来关联不同表中的数据。
在这个MySQL教程中,崔文华提供了他的联系方式,并简单介绍了数据库的基本概念,包括数据、数据库、数据库管理系统和数据库系统。还提到了数据库的发展历程,从早期的纯文本数据库到关系数据库,以及现代的“关系-对象”型数据库,表明了数据库技术的不断进步和适应各种复杂应用需求的能力。
2021-12-18 上传
2022-09-24 上传
2023-05-31 上传
2023-05-10 上传
2023-05-25 上传
2024-04-27 上传
2023-04-22 上传
2024-05-31 上传
慕栗子
- 粉丝: 19
- 资源: 2万+
最新资源
- Java集合ArrayList实现字符串管理及效果展示
- 实现2D3D相机拾取射线的关键技术
- LiveLy-公寓管理门户:创新体验与技术实现
- 易语言打造的快捷禁止程序运行小工具
- Microgateway核心:实现配置和插件的主端口转发
- 掌握Java基本操作:增删查改入门代码详解
- Apache Tomcat 7.0.109 Windows版下载指南
- Qt实现文件系统浏览器界面设计与功能开发
- ReactJS新手实验:搭建与运行教程
- 探索生成艺术:几个月创意Processing实验
- Django框架下Cisco IOx平台实战开发案例源码解析
- 在Linux环境下配置Java版VTK开发环境
- 29街网上城市公司网站系统v1.0:企业建站全面解决方案
- WordPress CMB2插件的Suggest字段类型使用教程
- TCP协议实现的Java桌面聊天客户端应用
- ANR-WatchDog: 检测Android应用无响应并报告异常