数据库SQL——连接表达式(JOIN)图解

devtools/2024/11/14 22:01:09/

         

目录

一、基本概念

二、常见类型

内连接(INNER JOIN):

左连接(LEFT JOIN 或 LEFT OUTER JOIN):

右连接(RIGHT JOIN 或 RIGHT OUTER JOIN):

全连接(FULL JOIN 或 FULL OUTER JOIN):

自然连接(NATURAL JOIN):

交叉连接(CROSS JOIN):


          数据库连接表达式是指用于在数据库查询中连接两个或多个表的表达式。这种表达式通常用于SQL(Structured Query Language)中,以实现数据的联合查询、数据整合等目的。

一、基本概念

        数据库连接表达式是SQL中的一种重要语法,它允许用户根据一定的条件将两个或多个表连接起来,从而获取这些表中相关的数据。这种连接可以是基于表中的某个或多个共同属性(字段)进行的。

二、常见类型

  1. 内连接(INNER JOIN)
    • 含义:只返回两个表中满足连接条件的记录。
    • 示例:SELECT * FROM A INNER JOIN B ON A.key = B.key

  2. 左连接(LEFT JOIN 或 LEFT OUTER JOIN)
    • 含义:返回左表中的所有记录,以及右表中满足连接条件的记录。如果右表中没有满足条件的记录,则结果中的右表部分会显示为NULL。
    • 示例:SELECT * FROM A LEFT JOIN B ON A.key = B.key

    • SELECT * FROM A LEFT JOIN B ON A.key = B.key WHERE B.key is NULL

  3. 右连接(RIGHT JOIN 或 RIGHT OUTER JOIN)
    • 含义:返回右表中的所有记录,以及左表中满足连接条件的记录。如果左表中没有满足条件的记录,则结果中的左表部分会显示为NULL。
    • 示例:SELECT * FROM A RIGHT JOIN B ON A.key = B.key

    • SELECT * FROM A RIGHT JOIN B ON A.key = B.key WHERE B.key is NULL

  4. 全连接(FULL JOIN 或 FULL OUTER JOIN)
    • 含义:返回两个表中所有的记录,无论是否满足连接条件。如果某个表中没有满足条件的记录,则结果中的对应部分会显示为NULL。
    • 示例:SELECT * FROM A FULL JOIN B ON A.key = B.key(注意:并非所有数据库系统都支持FULL JOIN)。

    • SELECT * FROM A FULL JOIN B ON A.key = B.key WHERE A.key is NULL OR B.key is NULL

  5. 自然连接(NATURAL JOIN)
    • 含义:基于两个表中具有相同名称和相同数据类型的列自动进行连接。自然连接会消除结果中的重复列。
    • 示例:SELECT * FROM A NATURAL JOIN B
  6. 交叉连接(CROSS JOIN)
    • 含义:返回两个表的笛卡尔积,即两个表中所有记录的组合。
    • 示例:SELECT * FROM 表1 CROSS JOIN 表2

http://www.ppmy.cn/devtools/134006.html

相关文章

LabVIEW导入并显示CAD DXF文件图形 程序见附件

LabVIEW导入并显示CAD DXF文件图形 程序见附件 LabVIEW导入并显示CAD DXF文件图形 程序见附件 - 北京瀚文网星科技有限公司 LabVIEW广泛应用于自动化、数据采集、图形显示等领域。对于涉及CAD图形的应用,LabVIEW也提供了一些方法来导入和显示CAD DXF文件&#x…

Diffusion Policy——斯坦福机器人UMI所用的扩散策略:从原理到其编码实现(含Diff-Control、ControlNet详解)

前言 本文一开始是属于此文《UMI——斯坦福刷盘机器人:从手持夹持器到动作预测Diffusion Policy(含代码解读)》的第三部分,考虑后Diffusion Policy的重要性很高,加之后续还有一系列基于其的改进工作 故独立成本文,且写的过程中 …

uni-app收藏按钮组件实现⑬

文章目录 二十一、收藏按钮组件实现一、前端处理二、云函数定义获取数据后前端处理 二十一、收藏按钮组件实现 一、前端处理 收藏图标点击事件内获取用户信息,及文章信息,传递到后端 由于多个界面中都会用到 userInfo 对象,可将 userInfo 对…

机器学习在网络安全中的应用

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 机器学习在网络安全中的应用 机器学习在网络安全中的应用 机器学习在网络安全中的应用 引言 机器学习概述 定义与原理 发展历程 …

【论文阅读】Virtual Compiler Is All You Need For Assembly Code Search

阅读笔记:Virtual Compiler Is All You Need For Assembly Code Search 1. 研究背景 逆向工程:逆向工程需要在庞大的二进制文件中快速定位特定功能(例如恶意行为)。传统方法依赖于经验和启发式算法,效率低下。汇编代码搜索:通过自然语言搜索汇编代码功能,能够更高效地处…

Java中的泛型

什么是泛型&#xff1f; 限制容器存储的元素类型&#xff0c;用于集合、接口、实现类中 说明&#xff1a;泛型参数在指明时&#xff0c;不可以使用基本数据类型&#xff01;不过可以使用包装类替换 案例1&#xff1a;ArrayList ArrayList<Integer> list new ArrayList…

LLMs之VDB:Elasticsearch的简介、安装和使用方法、案例应用之详细攻略

LLMs之VDB&#xff1a;Elasticsearch的简介、安装和使用方法、案例应用之详细攻略 目录 Elasticsearch的简介 1、特点 Elasticsearch的安装和使用方法 1、安装 T1、云服务—使用 Elastic Cloud T2、本地安装、运行和管理Elasticsearch(仅限开发和测试) 用start-local脚本…

如何制作代购系统的 物流管理模块

在代购系统中&#xff0c;物流管理模块是至关重要的组成部分&#xff0c;它涉及到商品配送的各个环节&#xff0c;确保商品能够高效、准确地送达消费者手中。本文将详细介绍如何制作一个代购系统的物流管理模块&#xff0c;包括后端服务设计和前端界面实现&#xff0c;以及如何…