MySQL中的关联查询

这篇博客详细解释了MySQL中的关联查询,探讨了关联的定义、使用关联查询的原因和方式,以及如何处理多个表的关联。文章通过实例演示了从建立笛卡尔积到过滤和选择的过程,阐述了多表关联查询的工作机制,并提到了不同类型的关联查询,强调了数据分类建表的重要性。
摘要由CSDN通过智能技术生成

MySQL中的关联查询

(1)Question:关联是什么

关联是SQL语言中使用SELECT操作表的一种操作机制,用来联系两个或者多个表。SELECT是SQL中的查询语句,用于查询数据库中的数据。将SELECT与关联结合,就产生了关联查询。

(2)Question :为什么要使用关联

假设一个班级有30名学生,每个学生都有自己的姓名、学号、班级、班主任等这些属性,可以发现,姓名学号是每个学生独有的,而班级、班主任、班主任电话等等信息是学生们共有的。现在如果要将这个班级的信息存储在数据库中,那么有两种存储方式。

① 建一张表,将数据都存在这一张表中,如下。

班级 班主任 班主任电话 学生姓名 学号
六年一班 阿福 13131313131 小夫 1
六年一班 阿福 13131313131 大熊 2
六年一班 阿福 13131313131 静香 3

② 建多张表,将数据归类后存放,如下。

(1)

班级 班主任 班主任电话
六年一班 阿福 13131313131

(2)

学生姓名 学号 班级
小夫 1 六年一班
大熊 2 六年一班
静香 3 六年一班

为了方便说明,就不写30个学生信息了。可以发现,将数据都存放在一张表中,可以提高读表的可读性,但是开发者就会很麻烦,因为表中的前三列信息是一模一样的。如果有30条数据时,开发者就必须重复的填入相同的信息,麻烦又会出错。反观方法②,就对开发者十分友好,只有1列在重复。并且方法②的优势还在于,假设老师换手机号码了,只需要修改表(1)中的手机号,而不用像方法①中一个一个去修改。方法②如此便利,那么我们对这样的表进行查询呢?

(3)Question:如何使用关联查询?

现在我们在实际的数据库中设计两个表,为了SQL操作方便,我们将列的键都设置成英文字母。

(1)班级信息建表代码

CREATE TABLE `classinfo` (
  `class` varchar(255) DEFAULT NULL,
  `teacher` varchar(255) D
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值