MySQL数据库教程:内连接与多表查询解析
需积分: 10 186 浏览量
更新于2024-08-15
收藏 2.14MB PPT 举报
"这篇教程主要介绍了数据库中的多表查询,特别是内连接的概念,以及如何在MySQL数据库中使用内连接进行查询。"
在数据库查询中,内连接(INNER JOIN)是一种重要的联接方式,用于合并两个或多个表的数据,只返回那些在所有连接的表中都存在匹配记录的行。在这个例子中,我们有两个表——`Sc` 和 `Students`。`Sc` 表记录了学生的成绩信息,包括 `StudentID`,`CourseID` 和 `Grade`,而 `Students` 表包含了学生的详细信息,如 `SNo`(相当于 `StudentID`)和 `SName`。
首先,我们看第一个内连接查询:
```sql
SELECT S.SName, C.CourseID, C.Grade
FROM Sc AS C
INNER JOIN Students AS S
ON C.StudentID = S.SNo;
```
这个查询将 `Sc` 表与 `Students` 表连接在一起,基于 `C.StudentID`(`Sc` 表的列)等于 `S.SNo`(`Students` 表的列)。结果返回的是每个学生选修的课程及相应的分数,其中 `S.SName` 是学生姓名,`C.CourseID` 是课程编号,`C.Grade` 是成绩。
第二个查询的结构相同,只是交换了表的顺序:
```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;
```
这里的 `ON C.StudentID <> S.SNo` 指定了不等连接,这意味着查询将返回那些在 `Sc` 表中 `StudentID` 不等于 `Students` 表 `SNo` 的记录。由于没有这样的记录,这个查询将不会返回任何行。
在数据库的介绍中,还提到了一些基本概念,例如:
1. 数据(Data)是数据库中存储的基本对象,可以是文字、图形、图像等。
2. 数据库(Database, DB)是按照数据结构组织、存储和管理数据的地方。
3. 数据库管理系统(DBMS)是用于创建、维护和管理数据库的软件系统。
4. 数据库系统(DBS)包括数据库、DBMS 和相关的应用程序,用于实现对数据的高效管理。
MySQL是一个流行的开源关系型数据库管理系统,广泛应用于网站开发和个人项目。关系型数据库以表格形式存储数据,支持复杂的查询操作,如内连接、外连接和子查询。在学习数据库时,了解这些概念和操作是非常基础且重要的。
2020-11-13 上传
2022-12-13 上传
2023-04-15 上传
2021-01-30 上传
2019-12-26 上传
2022-12-18 上传
2021-12-22 上传
2021-12-22 上传
点击了解资源详情
ServeRobotics
- 粉丝: 38
- 资源: 2万+
最新资源
- shaynelarocque.github.io:shaynelarocque.github.io
- find_unused_open_ports
- 【WordPress插件】2022年最新版完整功能demo+插件2.2.1.zip
- Data-Science-IIHT:IIHT数据科学日志和工作表
- DOTween Pro v0.9.290.zip
- Club-management
- stinedeck:使用Flask,Python,MongoDB和Javascript jQuery创建的数字抽认卡应用程序
- PhotoshootMap
- WheelPicker:轮选择器
- spring-2021-work-Blua2:GitHub Classroom创建的spring-2021-work-Blua2
- Lucille MPD client:音乐播放器守护程序的客户端-开源
- micr1
- simple-cv
- 分数阶傅里叶变换.zip
- ci-app
- Entity_Resolution_Service_Intermediary_OSGi