MySQL连接查询介绍

MySQL的连接查询用于将多张表的数据整合,弥补了单表查询的缺陷。具体可分为内连接和外连接。
准备工作,分别创建两个表
班级表:

CREATE TABLE `class` (
  `id` int(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `classNo` varchar(20) DEFAULT NULL COMMENT '班号',
  `className` varchar(20) DEFAULT NULL COMMENT '班级名称',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4;

学生表:

CREATE TABLE `student` (
  `id` int(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `number` varchar(20) DEFAULT NULL COMMENT '学号',
  `name` varchar(255) DEFAULT NULL COMMENT '姓名',
  `address` varchar(255) DEFAULT NULL COMMENT '地址',
  `class` varchar(20) DEFAULT NULL COMMENT '班级',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4;

然后分别往里插入数据,如下:
学生表班级表现在以学生表作为左表,班级表为右表分别进行连接操作:
1.左连接:从左表取出所有数据数据,分别与右表进行匹配,左表中所有数据会显示出来,右表中匹配不到的数据会显示为’(Null)’。

SELECT
	s.*,
	c.* 
FROM
	student s
	LEFT JOIN class c ON s.class = c.classNo

左连接结果图2.右连接:从右表取出所有数据数据,分别与左表进行匹配,右表中所有数据会显示出来,左表中匹配不到的数据会显示为’(Null)’

SELECT
	s.*,
	c.* 
FROM
	student s
	RIGHT JOIN class c ON s.class = c.classNo

右连接结果图

3.内连接:从左表取出所有数据数据,分别与右表进行匹配,两个表匹配成功才会显示结果。

SELECT
	s.*,
	c.* 
FROM
	student s
	INNER  JOIN class c ON s.class = c.classNo

内连接结果图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值