openGauss学习笔记-27 openGauss 高级数据管理- JOIN

news2024/7/6 19:23:14

文章目录

    • openGauss学习笔记-27 openGauss 高级数据管理- JOIN
      • 27.1 交叉连接
      • 27.2 内连接
      • 27.3 左外连接
      • 27.4 右外连接
      • 27.5 全外连接

openGauss学习笔记-27 openGauss 高级数据管理- JOIN

JOIN子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段。

在openGauss中,JOIN有五种连接类型:

  • CROSS JOIN :交叉连接
  • INNER JOIN:内连接
  • LEFT OUTER JOIN:左外连接
  • RIGHT OUTER JOIN:右外连接
  • FULL OUTER JOIN:全外连接

以表table1和表table2为例说明不同连接类型,表数据如下:

openGauss=# SELECT * FROM table1;
 name  | city
-------+------
 Joes  | BJ
 Lily  | BJ
 James | SH
 Grace | SZ
(4 rows)

openGauss=# SELECT * FROM table2;
 id | name  | dept
----+-------+-------
  1 | Tommy | IT
  2 | Lily  | IT
  3 | Li    | sales
  4 | Grace | IT
(4 rows)

27.1 交叉连接

交叉连接即笛卡儿乘积,是指两个关系中所有元组的任意组合。

示例:将表table1和表table2进行交叉连接,结果如下。

openGauss=# SELECT * FROM table1 CROSS JOIN table2;
 name  | city | id | name  | dept
-------+------+----+-------+-------
 Joes  | BJ   |  1 | Tommy | IT
 Joes  | BJ   |  2 | Lily  | IT
 Joes  | BJ   |  3 | Li    | sales
 Joes  | BJ   |  4 | Grace | IT
 Lily  | BJ   |  1 | Tommy | IT
 Lily  | BJ   |  2 | Lily  | IT
 Lily  | BJ   |  3 | Li    | sales
 Lily  | BJ   |  4 | Grace | IT
 James | SH   |  1 | Tommy | IT
 James | SH   |  2 | Lily  | IT
 James | SH   |  3 | Li    | sales
 James | SH   |  4 | Grace | IT
 Grace | SZ   |  1 | Tommy | IT
 Grace | SZ   |  2 | Lily  | IT
 Grace | SZ   |  3 | Li    | sales
 Grace | SZ   |  4 | Grace | IT
(16 rows)

27.2 内连接

使用内连接时,如果两个表的相关字段满足连接条件,就从这两个表中提取数据并组合成新的记录,创建一个新的结果表。也就是在内连接查询中,只有满足条件的元组才能出现在结果关系中。

内连接是一种最常用的连接类型,也是默认的连接类型。

示例:查询表table1和表table2中字段name相同的列。

openGauss=# SELECT * FROM table1 a INNER JOIN table2 b ON a.name = b.name;
 name  | city | id | name  | dept
-------+------+----+-------+------
 Lily  | BJ   |  2 | Lily  | IT
 Grace | SZ   |  4 | Grace | IT
(2 rows)

27.3 左外连接

左外连接是指在连接查询中,将关键字左端表中所有的元组都列出来,如果能在右端的表中找到匹配的元组,显示匹配元组内容。如果在右端的表中,不能找到匹配的元组,那么对应的元组是空值(NULL)。

左外连接查询语句使用的关键字为LEFT OUTER JOIN,也就是说,左外连接的含义是限制连接关键字右端的表中的数据必须满足连接条件,而左端的表中的数据无论是否满足连接条件,均输出左端表中的内容。

示例:

openGauss=# SELECT * FROM table1 a LEFT OUTER JOIN table2 b ON a.name = b.name;
 name  | city | id | name  | dept
-------+------+----+-------+------
 Joes  | BJ   |    |       |
 Lily  | BJ   |  2 | Lily  | IT
 James | SH   |    |       |
 Grace | SZ   |  4 | Grace | IT
(4 rows)

27.4 右外连接

右外连接与左外连接类似,只是关键字右端表中的所有元组都列出,限制左端表的数据必须满足连接条件,而右端表中的数据无论是否满足连接条件,均输出表中的内容。

右外连接查询语句的关键字为RIGHT OUTER JOIN。

示例:

openGauss=# SELECT * FROM table1 a RIGHT OUTER JOIN table2 b ON a.name = b.name;
 name  | city | id | name  | dept
-------+------+----+-------+-------
 Lily  | BJ   |  2 | Lily  | IT
 Grace | SZ   |  4 | Grace | IT
       |      |  3 | Li    | sales
       |      |  1 | Tommy | IT
(4 rows)

27.5 全外连接

全外连接查询的特点是左、右两端表中的元组都输出,如果没能找到匹配的元组,就使用NULL来代替。

示例:

openGauss=# SELECT * FROM table1 a FULL OUTER JOIN table2 b ON a.name = b.name;
 name  | city | id | name  | dept
-------+------+----+-------+-------
 Joes  | BJ   |    |       |
 Lily  | BJ   |  2 | Lily  | IT
 James | SH   |    |       |
 Grace | SZ   |  4 | Grace | IT
       |      |  3 | Li    | sales
       |      |  1 | Tommy | IT
(6 rows)

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/822411.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SLA探活工具EaseProbe

工具介绍 EaseProbe可以做三种工作:探测、通知和报告。 项目地址:https://github.com/megaease/easeprobe 1、安装 [rootlocalhost ]# yum -y install unzip go [rootlocalhost ]# unzip easeprobe-main.zip [rootlocalhost ]# cd easeprobe-main [r…

如祺出行冲刺自动驾驶商业化,人少的地方机会多?

网约车,正在迎来让人“不明觉厉”的新一轮竞赛。 网约车监管信息交互系统的数据显示,截至今年6月30日,全国共有318家网约车平台公司取得网约车平台经营许可,环比增加5家;网约车监管信息交互系统6月份共收到订单信息7.…

作为新手小白,你应该了解的五个3DMAX的使用干货小技巧!

3Dmax是一款著名的三维建模和动画制作软件,广泛应用于建筑设计、影视特效、游戏开发等领域。对于初学者来说,熟练掌握一些干货小技巧,可以帮助大家更快地上手和使用这款强大的软件。 一、学习基础操作技巧 首先,你需要学习一些基…

留存测试数据,Apipost接口用例详解

接口用例可以在不影响源接口数据的情况下对接口添加多个用例,方便测试并保存测试数据。 创建用例 左侧目录选择接口后进入接口用例页面,点击添加用例 在弹出窗口中修改各种参数。如登录接口,可修改用户名为空,并添加断言。 执行…

【phaser微信抖音小游戏开发006】给文本增加点击事件

新建st006,为文本增加点击事件。 我们加了一个计数的count,点击一次增加一下,并显示到屏幕上去。 效果如下图: 其它的对象以此类推即可,先置inputEnable为true,然后再增加一个inputDown事件即可。

IO进程线程day4(2023.8.1)

一、Xmind整理: 进程的五态图: 内存分布图: 注:栈区:存储局部变量,形参(上边打错了!!!) 虚拟内存和物理内存: 进程的STAT&#xff1a…

C++设计模式之装饰者模式

文章目录 C装饰者设计模式什么是装饰者模式优缺点优点缺点 如何使用 C装饰者设计模式 什么是装饰者模式 装饰者模式是一种设计模式,它允许我们动态地将行为附加到对象上,而无需改变对象本身的定义。它将一个对象的行为包装在一个独立的的对象中&#xf…

数据库事务--数据库事务隔离级别实战

2、演示环境 数据库及工具 ➢MySQL版本 5.5.47 ➢数据库工具 Navicat for MySQL 数据库命令 ➢查看数据库版本: select version();➢查看数据库现在的隔离级别: select session.tx_ isolation;➢修改隔离级别: set session.tx_ _isolation级别参数;➢级别参数: READ-UN…

内网横向移动—非约束委派约束委派

内网横向移动—非约束委派&约束委派 1. 委派攻击介绍1.1. 约束委派分类 2. 非约束委派2.1. 配置非约束委派2.1.1. 域内主机配置2.1.2. 注册对象2.1.3. 域内用户配置 2.2. 案例测试2.2.1. 查询服务账户2.2.2. 查询机器账户2.2.3. 机器通讯2.2.4. 导出票据2.2.5. 导入票据2.2…

算法题--二叉树(二叉树的最近公共祖先、重建二叉树、二叉搜索树的后序遍历序列)

目录 二叉树 题目 二叉树的最近公共祖先 原题链接 解析 二叉搜索树的最近公共节点 核心思想 答案 重建二叉树 题目链接 解析 核心思想 答案 二叉搜索树的后序遍历序列 原题链接 解析 核心思想 答案 二叉树 该类题目的解决一般是通过节点的遍历去实现&#x…

edge://settings/defaultbrowser default ie

Microsoft Edge 中的 Internet Explorer 模式 有些网站专为与 Internet Explorer 一起使用,它们具有 Microsoft Edge 等新式浏览器不支持的功能。 如果你需要查看其中的某个网站,可使用 Microsoft Edge 中的 Internet Explorer 模式。 大多数网站在新…

优先级队列 (堆)

目录 一,堆的概念 二, 堆的存储结构 三, 堆的实现 3.1 shiftDown() 3.2 shiftUp() 3.3 shiftDown 与 shiftUp 的时间复杂度 四,堆排序 一,堆的概念 堆常用于实现优先队列(Priority Queue&#xff0…

【算法训练营】求最小公倍数+另类加法+走方格的方案数

7月31日 求最小公倍数题目题解代码 另类加法题目题解代码 走方格的方案数题目题解| 1 | 2 | 3 || 4 | 5 | 6 || 7 | 8 | 9 |代码 求最小公倍数 题目 点击跳转: 求最小公倍数 题解 最小公倍数 两数之积除以最大公约数,这里使用碾转相除法进行最大公约数的求解&am…

学习盒模型

1.是什么 2.标准模型 3.怪异模型 一、是什么 一个盒子由四部分组成: content、padding、border、margin 在CSS中,盒子模型可以分成: W3C 标准盒子模型IE 怪异盒子模型 默认情况下,盒子模型为W3C标准盒模型 二、标准盒模型 盒子总…

NetApp FAS存储系统磁盘更换详细步骤

说起更换磁盘,都会说非常简单,但无数次的血淋淋的教训让我们再次来审视一下更换磁盘的专业步骤。本文就是介绍最专业的也是最简单的磁盘更换步骤。常在河边走哪有不湿鞋,希望做了几十年攻城狮的你不要在这里翻船。 本文介绍的内容适用于Onta…

ELK日志管理平台架构和使用说明

一、部署架构 二、服务注册 2.1 日志解析服务 服务名:日志解析服务(Logstash) 服务默认端口:9600 2.2 日志查询服务 服务名:日志查询服务(Kibana) 服务默认端口:5601 三、对接…

光纤激光切割机是否属于环保设备

光纤激光切割机不属于环保设备。 环保设备是指用于控制环境污染、改善环境质量而由生产单位或建筑安装单位制造和建造出来的机械产品、构筑物及系统。 单纯的激光切割机当前是豁免环评的,比起普通二氧化碳激光切割机更节省空间和气体消耗量,光电转化率高…

C语言手撕单链表

一、链表的概念 链表是一种物理存储结构上非连续、非顺序的存储结构,也就是内存存储不是像顺序表那么连续存储,而是以结点的形式一块一块存储在堆上的(用动态内存开辟)。 既然在内存上不是连续存储,那我们如何将这一…

代码随想录算法训练营第二十八天 | Leetcode随机抽题检测

Leetcode随机抽题检测--使用题库:Leetcode热题100 1 两数之和未看解答自己编写的青春版重点题解的代码日后再次复习重新写 49 字母异位词分组未看解答自己编写的青春版重点题解的代码日后再次复习重新写 128 最长连续序列未看解答自己编写的青春版重点关于 left 和 …

谷歌浏览器提示客户端和服务器不支持一般 SSL 协议版本或加密套件(亲测有效)

目录 一、定位问题二、升级TLS1.21、原理之前架构调整架构 2、配置nginx3、配置tomcat 三、访问nginx即可 最近访问一部分网站时,出现如下图所示 “ 此网站无法提供案例连接,客户端和服务器不支持一般 SSL 协议版本或加密套件 ” 的问题。 一、定位问题…