GaussDB数据库SQL系列-表连接(JOIN)

这篇具有很好参考价值的文章主要介绍了GaussDB数据库SQL系列-表连接(JOIN)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、前言

二、GaussDB JOIN

1、LEFT JOIN

2、LEFT JOIN EXCLUDING INNER JOIN

3、RIGHT JOIN

4、LEFT JOIN EXCLUDING INNER JOIN

5、INNER JOIN

6、FULL OUTER JOIN

7、FULL OUTER JOIN EXCLUDING INNER JOIN

三、GaussDB 实验示例

1、初始化实验表

2、LEFT JOIN(示例)

3、RIGTH JOIN(示例)

4、INNER JOIN(示例)

5、FULL JOIN(示例)

四、小结

一、前言

SQL是用于数据分析和数据处理的最重要的编程语言之一,表连接(JOIN)是数据库中SQL的一种常见操作,在实际应用中,我们需要根据业务需求从两个或多个相关的表中获取信息。

二、GaussDB JOIN

GaussDB是华为推出的企业级分布式关系型数据库。GaussDB JOIN 子句是基于两个或者多个表之间的共同字段把它们进行结合。在GaussDB数据库中,常用的JOIN有如下几种连接及用法:INNER JOIN、LEFT JOIN、RIGHT JOIN、 FULL JOIN、CROSS JOIN。

1、LEFT JOIN

LEFT JOIN 一般称左连接,也写作 LEFT [OUTER] JOIN。左连接查询会返回左表中所有记录,且在右表中找到的关联数据列也会被一起返回。

GaussDB数据库SQL系列-表连接(JOIN),GaussDB经验总结,gaussdb,sql,数据库,原力计划

--SQL示例
SELECT  t1.column1
       ,…
       ,t2.column1 
	   ,…
FROM table1 t1 
LEFT JOIN table2 t2 
ON t1.id=t2.id ;

2、LEFT JOIN EXCLUDING INNER JOIN

返回左表有但右表没有关联数据的记录集。

GaussDB数据库SQL系列-表连接(JOIN),GaussDB经验总结,gaussdb,sql,数据库,原力计划

--SQL示例
SELECT  t1.column1
       ,…
       ,t2.column1 
	   ,…
FROM table1 t1 
LEFT JOIN table2 t2 
ON t1.id=t2.id
WHERE t2.id IS NULL ;

3、RIGHT JOIN

RIGHT JOIN 一般称右连接,也写作 RIGHT [OUTER] JOIN。右连接查询会返回右表中所有记录,且在左表中找到的关联数据列也会被一起返回。

GaussDB数据库SQL系列-表连接(JOIN),GaussDB经验总结,gaussdb,sql,数据库,原力计划

--SQL示例
SELECT  t1.column1
       ,…
       ,t2.column1 
	   ,…
FROM table1 t1 
RIGHT JOIN table2 t2
ON t1.id=t2.id

4、LEFT JOIN EXCLUDING INNER JOIN

返回右表有但左表没有关联数据的记录集。

GaussDB数据库SQL系列-表连接(JOIN),GaussDB经验总结,gaussdb,sql,数据库,原力计划

--SQL示例
SELECT  t1.column1
       ,…
       ,t2.column1 
	   ,…
FROM table1 t1 
RIGHT JOIN table2 t2
ON t1.id=t2.id
WHERE t1.id IS NULL ;

5、INNER JOIN

INNER JOIN 一般被译作内连接。获取左表和右表中能关联起来的数据。

GaussDB数据库SQL系列-表连接(JOIN),GaussDB经验总结,gaussdb,sql,数据库,原力计划

--SQL示例
SELECT  t1.column1
       ,…
       ,t2.column1 
	   ,…
FROM table1 t1 
INNER JOIN table2 t2
ON t1.id=t2.id ;

6、FULL OUTER JOIN

FULL [OUTER] JOIN 一般称外连接、全连接,实际查询语句中可以写作FULL JOIN。外连接查询能返回左右表里的所有记录。

GaussDB数据库SQL系列-表连接(JOIN),GaussDB经验总结,gaussdb,sql,数据库,原力计划

--SQL示例
SELECT  t1.column1
       ,…
       ,t2.column1 
	   ,…
FROM table1 t1 
FULL OUTER JOIN table2 t2
ON t1.id=t2.id ;

7、FULL OUTER JOIN EXCLUDING INNER JOIN

返回左表和右表里没有相互关联的记录集。

GaussDB数据库SQL系列-表连接(JOIN),GaussDB经验总结,gaussdb,sql,数据库,原力计划

 

--SQL示例
SELECT  t1.column1
       ,…
       ,t2.column1 
	   ,…
FROM table1 t1 
FULL OUTER JOIN table2 t2
ON t1.id=t2.id 
WHERE t1.id IS NULL 
OR t2.id IS NULL ;

除以上几种外,另有 CROSS JOIN(迪卡尔集),但此用法不常用,可做拓展研究。

三、GaussDB 实验示例

创建两张实验表:Students(学生表)和Score(学生成绩表)。

1、初始化实验表

1)Students(学生表):

--学生表,Students(SNO, SNAME)代表 (学号,姓名)
DROP TABLE students;
CREATE TABLE students(
    sno    INTEGER     NOT NULL,
    sname  varchar(32)
);

--插入数据
INSERT INTO students(sno,sname) VALUES (1001,'张三');
INSERT INTO students(sno,sname) VALUES (1002,'李四');
INSERT INTO students(sno,sname) VALUES (1003,'王五');
INSERT INTO students(sno,sname) VALUES (1004,'赵六');
INSERT INTO students(sno,sname) VALUES (1005,'韩梅');
INSERT INTO students(sno,sname) VALUES (1006,'李雷');

--查看表信息
SELECT * FROM students;

GaussDB数据库SQL系列-表连接(JOIN),GaussDB经验总结,gaussdb,sql,数据库,原力计划

 2)Score(学生成绩表):

--学生成绩表,Score(SNO, SCGRADE) 代表(学号,成绩)
DROP TABLE score;
CREATE TABLE score(
    sno      INTEGER     NOT NULL,
    scgrade  DECIMAL(3,1)
);

--插入数据
INSERT INTO score(sno,scgrade)values(1001,98);
INSERT INTO score(sno,scgrade)values(1002,95);
INSERT INTO score(sno,scgrade)values(1003,97);	
INSERT INTO score(sno,scgrade)values(1004,99);

--查看表信息
SELECT * FROM score;

GaussDB数据库SQL系列-表连接(JOIN),GaussDB经验总结,gaussdb,sql,数据库,原力计划

2、LEFT JOIN(示例)

--表students为主表
SELECT t1.sno
      ,t1.sname
      ,t2.sno
      ,t2.scgrade
 FROM students t1
LEFT JOIN score t2
ON t1.sno=t2.sno

GaussDB数据库SQL系列-表连接(JOIN),GaussDB经验总结,gaussdb,sql,数据库,原力计划

3、RIGTH JOIN(示例)

--表score 为主表
SELECT t1.sno
      ,t1.sname
      ,t2.sno
      ,t2.scgrade
 FROM students t1
RIGHT JOIN score t2
ON t1.sno=t2.sno

GaussDB数据库SQL系列-表连接(JOIN),GaussDB经验总结,gaussdb,sql,数据库,原力计划

4、INNER JOIN(示例)

--根据字段sno获取两个表中都有的数据
SELECT t1.sno
      ,t1.sname
      ,t2.sno
      ,t2.scgrade
 FROM students t1
INNER JOIN score t2
ON t1.sno=t2.sno

GaussDB数据库SQL系列-表连接(JOIN),GaussDB经验总结,gaussdb,sql,数据库,原力计划

5、FULL JOIN(示例)

--获取左右表里的所有记录。
SELECT t1.sno
      ,t1.sname
      ,t2.sno
      ,t2.scgrade
 FROM students t1
FULL JOIN score t2
ON t1.sno=t2.sno

GaussDB数据库SQL系列-表连接(JOIN),GaussDB经验总结,gaussdb,sql,数据库,原力计划

 

四、小结

数据库表连接(Join)是将两个或多个表中的数据根据一定的条件进行组合,在实际应用中,数据库表连接可以帮助我们快速地获取所需的数据信息,提高数据处理效率。需要注意的是,不同的数据库系统对表连接的支持程度可能存在差异,需要根据具体的数据库类型选择合适的连接方式。(本文是以GaussDB云数据库为实验平台)

——结束文章来源地址https://www.toymoban.com/news/detail-639315.html

到了这里,关于GaussDB数据库SQL系列-表连接(JOIN)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • GaussDB云数据库SQL应用系列-定时任务管理

    前言 GaussDB数据库定时任务主要可以用于实现定期的备份、统计信息采集、数据汇总、数据清理与优化等,它是指在指定的时间间隔内自动执行一次或多次SQL语句的程序。 GaussDB数据库兼容Oracle定时任务功能主要通过DBE_TASK高级功能包提供的二次封装接口实现(另可参见GaussD

    2024年02月08日
    浏览(58)
  • GaussDB云数据库SQL应用系列—分区表管理

    目录 前言 一、分区表基本原理 二、分区表主要优势 三、分区表常见场景 四、GaussDB分区表管理(示例) 示例一:创建范围分区表(RANGE) 示例二:创建哈希分区表(HASH) 示例三:创建列表分区(LIST) 五、总结 前言 本文将介绍GaussDB云数据库的分区表技术,包括原理、优势以

    2024年02月09日
    浏览(51)
  • GaussDB数据库SQL系列-UNION & UNION ALL

    目录 一、前言 二、GaussDB  UNION/UNION ALL 1、GaussDB UNION 操作符 2、语法定义 三、GaussDB实验示例 1、创建实验表 2、合并且除重(UNION) 3、合并不除重(UNION ALL) 4、合并带有WHERE子句SQL结果集(UNION ALL) 5、业务逻辑除重后合并(UNION ALL) 四、GaussDB UNION常见错误 1、“each UNION que

    2024年02月12日
    浏览(54)
  • DBeaver连接华为高斯数据库 DBeaver连接Gaussdb数据库 DBeaver connect Gaussdb

              华为GaussDB出来已经有一段时间,最近工作中刚到Gauss数据库。作为coder,那么如何通过可视化工具来操作Gauss呢? 本文将记录使用 免费、开源的DBeaver 来连接Gauss 高斯数据库。         1、安装Gauss数据库         已经安装好的Gauss数据库服务。参考地址:

    2024年02月16日
    浏览(50)
  • GaussDB高斯数据库(SQL语法分类)

    日常查询中,最常用的是通过FROM子句实现的查询。 语法格式:使用方法: SELECT [ , ... ] FROM table_reference [ , ... ] SELECT之后和FROM子句之前出现的表达式称为SELECT项。SELECT项用于指定要查询的列,FROM指定要从哪个表中查询。如果要查询所有列,可以在SELECT后面使用*号,如

    2024年02月16日
    浏览(49)
  • GaussDB高斯数据库(SQL语法入门)

    DDL数据定于语言:用于定义或修改数据库中的对象,如:表,索引,视图,数据库,序列,用户,角色,表空间,会话等。 DDL不支持物化视图,存储过程,触发器,自定义函数,自定义类型。 DML数据操作语言:用于对数据库表中的数据进行操作,如插入,更新和删除。 DCL数

    2023年04月10日
    浏览(47)
  • JDBC连接GaussDB云数据库操作示例

    目录 一、实验环境 二、登录华为云创建测试库表 1、登录GaussDB云数据库 2、建库、建表,用于测试 3、新增普通角色(用户)用于登录及访问测试(可选) 4、获取对应的公网IP 三、创建java工程 1、创建java工程 2、添加jar包 3、编辑Java代码 四、执行并查看测试结果 1、本地JDB版

    2024年02月05日
    浏览(111)
  • MySQL数据库第十课-------join连接的再续------强强连锁

     欢迎小可爱们前来借鉴我的gtiee秦老大大 (qin-laoda) - Gitee.com __________________________________________________________ join连接  内连接 左连接 右连接 外连接 其他连接 ______________________________________________________________         最近学校课程很多,无法及时更新,还望各位小可爱多多包含,你的

    2024年02月16日
    浏览(39)
  • 揭示十年数据库经验,告诉你如何轻松应对常见问题(SQL 小虚竹)

    回城传送–》《数据库问题解决方案》 ❤️作者主页:小虚竹 ❤️作者简介:大家好,我是小虚竹。2022年度博客之星评选TOP 10🏆,Java领域优质创作者🏆,CSDN博客专家🏆,华为云享专家🏆,掘金年度人气作者🏆,阿里云专家博主🏆,51CTO专家博主🏆 ❤️技术活,该赏 ❤

    2023年04月18日
    浏览(57)
  • C# 连接SQL Sever 数据库

    获取服务器名,用户名,密码以及你要访问的数据库 1.新建一个项目(控制台应用) 2. 引入相关命名空间 3.访问数据库 我的数据库的信息: 服务器名 :DESKTOP-56DN3HD 登录名 :Csharp 密码 :123456 数据库名 :LibraryManagementSystem 方法一 方法二 (1)是数据源服务器 (2)是要访问的数据

    2024年02月08日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包