MySQL基础学习笔记——连接查询(1):内连接查询. inner join . on

连接查询

  • 作用:连接查询可以实现多个表的查询,当查询的字段数据来自不同的表就可以使用连接查询来完成。
  • 数据库准备:
# 创建hero表
CREATE TABLE `hero` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(64) NOT NULL,
  `gongfuid` int(10) unsigned NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

# 创建gongfu表
CREATE TABLE `gongfu` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(64) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
# 插入数据
INSERT INTO `hero` VALUES (1,'妲己',2),(2,'李白',1),(3,'程咬金',3),(4,'公孙离',5);
INSERT INTO `gongfu` VALUES (1,'吟诗作对'),(2,'魅惑'),(3,'三板斧'),(4,'沉默');

内连接查询 . inner join . on

  • 定义:查询两个表中符合条件的共有记录
    在这里插入图片描述
  • 说明:inner join 就是内连接查询的关键字on就是连接查询条件
  • 语法:
select 字段 from1 inner join2 on1.字段1=2.字段2;
# 例如
select * from hero inner join gongfu;
  • 注意:上面的语句查询出来的叫笛卡尔积左表和右表一一对应
    在这里插入图片描述
  • 如上图所示,只需要设置条件让hero表中的gongfuidgongfu表中的id相等就可以获取到两个表中的共有记录,即内连接查询的结果是从笛卡尔积结果中取出来的
  • 注意:连接查询的条件使用on关键字(这里会发发现用where结果与on相同)
# 完整写法
select * from hero inner join gongfu on hero.gongfuid=gongfu.id;
# 简单写法 省略inner
select * from hero join gongfu on hero.gongfuid=gongfu.id;
  • 狭义理解解释:内连接根据查询条件获取两个表的“交集”
    在这里插入图片描述
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鬼义虎神

打赏5C币,作者可获得4C币

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值