前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL之表连接

MySQL之表连接

作者头像
秋白
发布2019-02-21 09:56:29
1.9K0
发布2019-02-21 09:56:29
举报
文章被收录于专栏:java小白java小白

表连接

当需要同时显示多个表的字段时,就可以用表连接来实现这样的功能。从大类上分,表连接可分为内连接和外连接,它们之间的最主要区别是,内连接仅选出两张表中互相匹配的记录,而外连接会选出其他不匹配的记录。

这里写图片描述
这里写图片描述

查找出雇员的名字和所在的部门,雇员名称和部门分别存在表emp和dept中,因此需要使用表连接进行查询:

这里写图片描述
这里写图片描述

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

  1. 左连接:包含所有的左边表中的记录甚至是右边表中没有和它匹配的记录
  2. 右连接:包含所有的右边表中的记录甚至是左边表中没有和它匹配的记录
这里写图片描述
这里写图片描述

子查询

在某些条件下,当进行查询的时候,需要的条件是另外一个select语句的结果,这个时候就要用到子查询,用于子查询的关键字主要包括 in,not in,= ,!=,exists,not exists等

查出emp表跟dept表相对应部门的人

这里写图片描述
这里写图片描述

如果子查询记录数为一行,还可以用=代替In

这里写图片描述
这里写图片描述

在某些情况下,子查询可以转换成表连接,例如

这里写图片描述
这里写图片描述

记录联合 将两个表的数据按照一定的查询条件查询出来后,将结果合并到一起显示出来,这个时候,就需要用union和union all关键字来实现这样的功能,语法如下:

代码语言:javascript
复制
SELECT * FROM t1
UNION\UNION ALL
SELECT * FROM t2
...
UNION\UNION ALL
SELECT * FROM tn;

UNION和UNION ALL的主要区别是UNION ALL是把结果集直接合并在一起,而UNION是将UNION ALL后的结果进行一次DISTINCT,去除重复记录后的结果。 将emp和dept表中的部门编号集合显示出来:

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年01月12日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 表连接
    • 子查询
    相关产品与服务
    云数据库 SQL Server
    腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档