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)。

  • 40
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值