我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL表内连和外连的具体使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL表内连和外连的具体使用

一. 内连接

利用where子句对两种表形成的笛卡尔积进行筛选,其实就是内连接的一种方式
另一种方式是inner join

select 字段 from 表1 inner join 表2 on 连接条件 and 其他条件

现在有如下表

mysql> desc emp;
+----------+--------------------------+------+-----+---------+-------+
| Field    | Type                     | Null | Key | Default | Extra |
+----------+--------------------------+------+-----+---------+-------+
| empno    | int(6) unsigned zerofill | NO   |     | NULL    |       |
| ename    | varchar(10)              | YES  |     | NULL    |       |
| job      | varchar(9)               | YES  |     | NULL    |       |
| mgr      | int(4) unsigned zerofill | YES  |     | NULL    |       |
| hiredate | datetime                 | YES  |     | NULL    |       |
| sal      | decimal(7,2)             | YES  |     | NULL    |       |
| comm     | decimal(7,2)             | YES  |     | NULL    |       |
| deptno   | int(2) unsigned zerofill | YES  |     | NULL    |       |
+----------+--------------------------+------+-----+---------+-------+

mysql> desc dept;
+--------+--------------------------+------+-----+---------+-------+
| Field  | Type                     | Null | Key | Default | Extra |
+--------+--------------------------+------+-----+---------+-------+
| deptno | int(2) unsigned zerofill | NO   |     | NULL    |       |
| dname  | varchar(14)              | YES  |     | NULL    |       |
| loc    | varchar(13)              | YES  |     | NULL    |       |
+--------+--------------------------+------+-----+---------+-------+
  • 使用内连接查询方式,显示员工名为SMITH的名字和部门名称

因为员工名在emp表中,但部门名称在dept表中,所以需要对两个表进行笛卡尔积,也就是内连接

mysql->select ename,dname from emp,dept where emp.deptno=dept.deptno and ename='SMITH'

mysql->select ename,dname from emp inner join dept on emp.deptno=dept.deptno and ename='SMITH'

二. 外连接

外连接分为左外连接和右外连接

1. 左外连接

如果联合查询,左侧的表完全显示,就是左外连接

select 字段 from 表1 left join 表2 on 连接条件

现在有两张表

mysql> select * from su; //学生表
+------+------+
| id   | name |
+------+------+
|    1 | jack |
|    2 | tom  |
|    3 | kity |
|    4 | nono |
+------+------+

mysql> select * from exam; //成绩表
+------+-------+
| id   | grade |
+------+-------+
|    1 |    56 |
|    2 |    76 |
|   11 |     8 |
+------+-------+

可以看到,不是所有学生都有成绩,也不是所有成绩都有对应的学生

  • 查询所有学生的成绩,如果这个学生没有成绩,也要将学生的个人信息显示出来
mysql> select * from su left join exam on su.id=exam.id;
+------+------+------+-------+
| id   | name | id   | grade |
+------+------+------+-------+
|    1 | jack |    1 |    56 |
|    2 | tom  |    2 |    76 |
|    3 | kity | NULL |  NULL |
|    4 | nono | NULL |  NULL |
+------+------+------+-------+

su是左表,其信息会被完整显示出来,此时如果右表没有数据,则会使用默认值

2. 右外连接

如果联合查询,右侧的表完全显示我们就说是右外连接

select 字段 from 表1 right join 表2 on 连接条件

还是上述表

  • 对su表和exam表联合查询,把所有的成绩都显示出来,即使这个成绩没有学生与它对应,也要显示出来
mysql> select * from su right join exam on su.id=exam.id;
+------+------+------+-------+
| id   | name | id   | grade |
+------+------+------+-------+
|    1 | jack |    1 |    56 |
|    2 | tom  |    2 |    76 |
| NULL | NULL |   11 |     8 |
+------+------+------+-------+

和左外连接大抵相同

到此这篇关于MySQL表内连和外连的具体使用的文章就介绍到这了,更多相关MySQL表内连和外连内容请搜索编程客栈(www.cppcns.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.cppcns.com)!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL表内连和外连的具体使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySQL表内连和外连的具体使用

目录一. 内连接二. 外连接1. 左外连接2. 右外连接一. 内连接利用where子句对两种表形成的笛卡尔积进行筛选,其实就是内连接的一种方式另一种方式是inner joinselect 字段 from 表1 inner join 表2
2023-10-18

MySQL内外连接的具体使用

本文主要介绍了MySQL内外连接的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-01-28

【MySQL系列】表的内连接和外连接学习

「前言」文章内容大致是对MySQL表的内连接和外连接。 「归属专栏」MySQL 「主页链接」个人主页 「笔者」枫叶先生(fy) 目录 一、内连接二、外连接2.1 左外连接2.2 右外连接 一、内连接 内连接实际
2023-08-30

MySQL表的内外连接和视图使用实战练习

MySQL内外连接和视图实战本文详细讲解了MySQL表的内外连接和视图的使用技巧,并辅以实战练习加以说明。内连接:将两个表中的具有相同列值的记录合并。外连接:在内连接的基础上,左外连接会返回所有左表记录(即使右表没有关联记录),而右外连接会返回所有右表记录(即使左表没有关联记录)。视图:基于一个或多个表创建的虚拟表,可以隐藏底层表的复杂性,提高查询性能和数据安全性。实战练习:使用内连接或视图查询订单中数量大于5的所有产品的名称和供应商名称。
MySQL表的内外连接和视图使用实战练习
2024-04-02

详解MySQL的内连接和外连接

mysql 中的内连接、左外连接和右外连接是用于连接两个或多个表的不同方式,它们之间的区别如下:内连接(Inner Join):内连接也称为等值连接,只返回两个表中键值匹配的行,即只有在两个表中都有匹配的数据时才会返回。内连接的语法如下
2023-05-06

golang mysql的连接池的具体使用

目录1.mysql-通过sql建立连接池2.mysql-gorm 建立连接池3.连接池相较于单个client4.通用连接池参考1.mysql-通过sql建立连接池连接池用sql.Open函数创建连接池,可是此时只是初始化了连接池,并没有创
2023-02-21

MySQL的内连接和外连接有什么区别

MySQL的内连接和外连接是两种不同的查询方式。内连接(INNER JOIN)是根据两个表之间的共同字段进行连接,并返回满足条件的行。内连接只返回两个表中匹配的行,即只返回两个表中都存在的数据。外连接(OUTER JOIN)是根据两个表
MySQL的内连接和外连接有什么区别
2024-04-09

MySQL内连接和外连接及七种SQLJOINS的实现

这篇文章主要介绍了Mysql内连接和外连接的区别以及七种SQLJoins的实现,相信看完这篇文章你对SQL内外连接的多表查询就足够理解了,需要的朋友可以参考下
2023-03-23

golangmysql的连接池的具体使用

本文主要介绍了golangmysql的连接池的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-02-21

MySQL中的连接操作:内连接、外连接和交叉连接详解

MySQL中的连接操作:内连接、外连接和交叉连接详解在MySQL数据库中,连接操作是一种常用的操作技术,用于将两个或多个表中的数据按照一定的条件进行合并。连接操作可以帮助我们处理复杂的数据查询和分析需求。在MySQL中,我们通常使用内连接、
2023-10-22

MySQL内连接和外连接及七种SQL JOINS的实现

目录1. 内连接2.外连接左外连接:右外连接:满外连接:3. SQL99语法实现多表查询3.1 SQL99实现内连接3.2 SQL99语法实现外连接3.2.1 左外连接3.2.2 右外连接3.2.3 满外连接4.总结:七种SQL JOINS
2023-03-23

MySQL的全局锁和表级锁的具体使用

目录前言全局锁表级锁表锁元数据锁(Metadata Locking,简称:MDL锁)总结参考资料前言在真实的企业开发环境中使用MySQL,MySQL肯定不会只有我一个人使用,而是一个团队显式的使用MySQL,或者是业务隐式的使用MySQL,
2022-05-13

mysql 使用技巧 where条件连接;inner join内连接;外连接(left outer join,right outer join)

mysql的inner join等价于where条件连接查询内连接 inner join 省略形式  join 外连接左连接 left outer join 省略形式 left join  右连接 right outer join 省略形式 right joi
mysql 使用技巧 where条件连接;inner join内连接;外连接(left outer join,right outer join)
2022-02-01

Mysql 使用函数和使用表连接的快慢区别

要执行 0.146 秒左右,如果有 70 多个 ,就要 10秒钟; 改用表连接, 70 多个总共才需要 0.36秒
Mysql 使用函数和使用表连接的快慢区别
2016-04-12

Go语言类型内嵌和结构体内嵌的具体使用

本文主要介绍了Go语言类型内嵌和结构体内嵌的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-05-14

编程热搜

目录