MySQL 连接的类型 | MySQL 连接 [使用语法]

已发表: 2020-12-09

目录

介绍

MySQL 是由 Oracle 支持的开源关系数据库管理系统 (RDBMS)。 MySQL 由两个词组成——“My”,联合创始人 Michael Widenius 的女儿的名字,以及“SQL”,结构化查询语言的缩写。

RDBMS 中的关系一词是 MySQLwork 中 JOINS 的基础。 任何数据库中都可以有多种类型和数量的表。 JOINS 顾名思义,使用公共列将表链接在一起。 一个基本示例是,表 1 包含员工详细信息,表 2 包含项目详细信息。

如果我们必须检查员工参与的项目,我们可以加入员工姓名或员工 ID 的表,因此这样做将加入表,并且可以使用所需的所有信息访问新的虚拟表(可以保存) .

特征

  • MySQL 是开源的,并且是用于访问和管理表记录的适当 RDBMS。
  • 它支持SQL编码语言,这在数据库管理领域很常见。
  • MySQL 是基本且易于使用的。 如果有人被困在一个特定的问题上,它有大量的文档。
  • MySQL 有一个非常强大的安全层。 密码已加密,因此敏感数据不会受到入侵者的侵害。
  • MySQL 是可扩展的,因为它支持多线程。 即使表非常大,多线程也负责快速执行查询和数据操作。
  • MySQL具有客户端/服务器架构。 有一个数据库服务器和许多连接到服务器的客户端(应用程序)。

连接类型

内部联接

内连接是 MySQL 中默认的连接类型。 它连接并返回两个表中的匹配记录。 它将一个表的每一行与另一个表进行比较并检查连接条件。 如果满足条件,则使用两个表中的列创建一个新行,并将该新行包含在输出中。

代码片段:

选择t1 emp_id , t1.emp_name,t2.project_name

员工作为 t1

INNER JOIN项目作为 t2

开启t1.project_id = t2 项目编号

在此查询中,有两个表。 第一个表包含员工的详细信息,第二个表包含当前正在进行的所有项目。 运行上述查询后,MySQL 将返回所有员工及其各自的项目详细信息。 这里的project_id 列是employee 表中的外键和projects 表中的主键。 没有任何 project_id 的员工或没有任何员工的 project_id 的员工将不会被退回。

左连接

左连接,连接并返回两个表的匹配记录和第一个表的不匹配记录。 左连接本质上是从第一个表返回内连接 + 不匹配记录的输出。 这些不匹配的行也将包含表 2 中的列,但这些列中的值将为空,因为这些列没有匹配的数据。

代码片段:

选择t1 emp_id , t1.emp_name,t2.project_name

员工作为 t1

LEFT JOIN项目作为 t2

开启t1.project_id = t2 项目编号

在此查询中,有两个表。 第一个表包含员工的详细信息,第二个表包含当前正在进行的所有项目。 运行上述查询后,MySQL 将返回所有员工及其各自的项目详细信息以及未分配 project_id 的员工详细信息。 这里的project_id 列是employee 表中的外键和projects 表中的主键。

阅读:重命名 SQL 中的列名

右连接

右连接与左连接非常相似,只是现在第二个表中不匹配的记录将包含在输出中,并且只有第一个表中的匹配记录。

代码片段:

选择t1 emp_id , t1.emp_name,t2.project_name

员工作为 t1

RIGHT JOIN项目作为 t2

开启t1.project_id = t2 项目编号

运行上述查询后,MySQL 将返回所有员工及其各自的项目详细信息以及没有匹配员工的项目的详细信息。 在这些情况下,员工详细信息列将为 NULL。

完全加入

顾名思义,全连接返回所有匹配和不匹配的记录。 如果 MySQL 能够在所需列上找到匹配的行,则将匹配这些记录。 其余行将具有 NULL 值。

代码片段:

选择*

员工作为 t1

完全外部连接项目作为t2

开启t1.project_id = t2 项目编号

运行上述查询后,MySQL 将返回所有员工及其各自的项目详细信息,以及没有项目的员工和没有匹配员工的项目的详细信息。 某些列将相应地具有 NULL 值。

交叉连接

顾名思义,交叉连接会将表 1 的每一行与表 2 的每一行连接起来。与匹配列无关。 因此,如果每个表中有 5 条记录,则输出将有 25 行,因为每一行都与另一行匹配。

代码片段:

选择*

员工作为 t1

交叉连接项目作为 t2

运行上述查询后,MySQL 将返回所有员工以及所有项目详细信息。 虽然将这些信息可视化并没有多大意义,但是在一些特殊和特定的情况下,Cross Joins 很重要并且需要。

另请阅读: SQL 面试问答

报名参加世界顶尖大学的软件工程课程获得行政 PG 课程、高级证书课程或硕士课程,以加快您的职业生涯。

结论

JOINS 是数据提取的重要组成部分。 它们有助于根据用户的需要组合来自各种表的数据。 JOINS 的唯一缺点可能是它们有时写起来很复杂。 归根结底,JOINS 非常有用,并且可以在 MySQL 中实现各种类型的连接。

总而言之,在本文中提到的所有数据库上学习和实践将增加您的经验。 浏览与之相关的课程概述、学习和工作机会——像 upGrad 这样的平台提供由 IIIT-B 等知名机构设计的功能强大的课程,在 Executive PG Program Full Stack Development 中进行。

为未来的职业做准备

立即申请软件工程硕士