MySQL数据库中的多表查询/连接查询操作

类型:内连接 ,外连接{左外连接,右外连接}

之所以要使用连接查询的意义就是为了,借助数据库可以避免大量的数据重复。

进行连接查询的前提是要求多张表之间存在相关联的字段。

这里指的相关联的字段就是表与表之间存在着关系,也就是说表与表之间需要存在着相同意义的数据。

进行连接查询的前提条件:多张表之间要存在相关联的字段。也就是多张表之间要存在相同意义的数据。

1.数据库内部是如何帮助我们完成多表查询的。

数据库内部会在多表之间进行笛卡尔积连接。

笛卡尔积就是将多张表合并成一张大表,这张大表会包含着多张表中的所有字段名称。

然后将第一张表中的每一条数据与第二张表中的所有数据,进行组合。

比如A与1,2,3进行组合

B与1,2,3进行组合

如上图所示,就是进行连接查询时,多张表之间进行的笛卡尔积连接。

而这张大表的有效信息,就是当部门与部门编号相同的信息,才算是一行有效信息。

2.内连接

1.内连接特征:

只有相关联字段存在相同的值时,才会显示结果。

如上图所示,当你使用内连接去查询数据的时候,查询的结果可能不全。原因是只有当相关联字段存在相同的值时才会显示结果,

2.内连接的语法结果

语法1 {显式内连接语法}

select 表名.字段名称,表名.字段名称,表名.字段名称,from 表名 inner join 表名 on 相关联字段

示例1:查询学生信息及对应的教师名称(内连接)

如上图所示,select 表名.字段名称,表名.字段名称,表名.字段名称,表名.字段名称,

from 表名 inner join 表名

on 相关联的字段;{这里具体表现为表1.字段名称=表2.字段名称}

建立内连接的前提是了解表的结构,即使用select * from 表名;来查看表的内容。

示例二:查询课程名称及对应的教师名称

如上图所示,select 课程表中的课程名与教师表中的教师名

from 课程表 inner join 教师表

on 课程表中的关联字段=教师表中的关联字段

示例3:查询学生信息,第一门课程名称,教师名称

select 学生表中的姓名,年龄,课程表中的名称,教师表中的名称

from 学生表 inner join 课程表 inner join 教师表

on 学生表的关联字段=课程表中的关联字段 and 课程表中的关联字段=教师表中的关联字段;

语法2 {隐式内连接语法}

select 表名.字段名称,表名.字段名称,表名.字段名称 from 表名,表名 where 关联字段

查询学生信息,第二门课程

如上图所示,想查询学生第二门课程的信息,就需要将where 学生第二门课程的CID=课程表的CID

在MySQL数据库中什么场景使用语法1{显式内连接语法} 语法2{隐式内连接语法}?

  • 使用场景:几乎所有的新开发项目和维护现代数据库时都推荐使用显式内连接。它提高了代码的可读性和可维护性,特别是当涉及到多表联查时。
  • 总结来说,虽然两种语法都能实现内连接,但出于代码清晰度和行业最佳实践的考虑,推荐优先使用显式内连接(语法1)。只有在特殊场景下,如维护旧代码或个人习惯,才会考虑使用隐式内连接(语法2)。
相关推荐
bin91532 分钟前
【EXCEL数据处理】000010 案列 EXCEL文本型和常规型转换。使用的软件是微软的Excel操作的。处理数据的目的是让数据更直观的显示出来,方便查看。
大数据·数据库·信息可视化·数据挖掘·数据分析·excel·数据可视化
Miqiuha10 分钟前
lock_guard和unique_lock学习总结
java·数据库·学习
一 乐1 小时前
学籍管理平台|在线学籍管理平台系统|基于Springboot+VUE的在线学籍管理平台系统设计与实现(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·学习
Java探秘者5 小时前
Maven下载、安装与环境配置详解:从零开始搭建高效Java开发环境
java·开发语言·数据库·spring boot·spring cloud·maven·idea
2301_786964365 小时前
3、练习常用的HBase Shell命令+HBase 常用的Java API 及应用实例
java·大数据·数据库·分布式·hbase
阿维的博客日记6 小时前
图文并茂解释水平分表,垂直分表,水平分库,垂直分库
数据库·分库分表
wrx繁星点点7 小时前
事务的四大特性(ACID)
java·开发语言·数据库
小小娥子7 小时前
Redis的基础认识与在ubuntu上的安装教程
java·数据库·redis·缓存
DieSnowK7 小时前
[Redis][集群][下]详细讲解
数据库·redis·分布式·缓存·集群·高可用·新手向
-XWB-8 小时前
【MySQL】数据目录迁移
数据库·mysql