SQL的内连接与外连接

SQL魔法学院:探秘内连接外连接、交叉连接笛卡尔积 数据库连接是在关系型数据库中,通过某种方式将两个或多个表中的数据联系起来的操作。连接操作是SQL语言中最重要的操作之一,它能够帮助我们在多个表中进行复杂的数据查询和分析。内连接是通过使用两个或多个表之间的共同列来连接它们的操作。内连接只返回满足连接条件的行,即两个表中共同的数据行。外连接是通过使用两个或多个表之间的共同列来连接它们的操作,不仅返回满足连接条件的行,还返回未满足连接条件的行。交叉连接是将两个表中的所有行进行组合的操作。交叉连接不需要指定连接条件,它返回的结果是两个表的笛卡尔积。 阅读详情

     在oracle的SQL语句常用的连接有内连接(inner join),外连接(outer join)等,内连接又包括等值连接,非等值连接,自连接;而外连接又分为左连接和右连接。其中默认的是内连接的等值连接。

     为了方便我们创建两张最简易的表A、B,具体的表结构参看下面,来分析内连接与外连接的区别

图1,表A          图2 表B

                      图1                                                                      图2

 

两个表要做连接,必须要有连接字段,而在表A和表B中连接字段是Aid和Bnamid,下图说明了连接之间关系图3

图3

                                                                  图3

    (1) 内连接:利用内连接(等值)就可获取蓝色的公共部分C,即图3中的数据集C,结果集为如下:

   

             图4

                                                                   图4

 

   其实select * from A join B on A.Aid=B.Bnamid;等价于select * from A,B where A.Aid=B.Bnamid;
       注:非等值连接主要的话是针对一个范围来查询数据,自连接主要就是把1张表堪称两张表来用                       
   (2)外连接:分为左外连接(left join)与右外连接(right join)
     
      左外连接即公共显示的蓝色部分C1+显示黄色的记录集A1,显示语句等价于select * from A,B where A.Aid=B.Bnamid(+);       

 

            图5

                                                                    图  5

 

右外连接即公共显示的蓝色部分C1+显示绿色的B1,显示语句等价于select * from A,B where A.Aid(+)=B.Bnamid;

          图6 

                                                                      图6

 

  表A和表B情况是相对的,以上实验都是A在左边的情况,其实A left join B与B right join A的情况的结果集是一样的。

掌握SQL连接:内连接外连接区别及实践 本文深入探讨了SQL内连接外连接的使用场景和区别,通过具体的SQL示例展示了左外连接、右外连接和全外连接的行为,并分析了它们在处理数据库关系时的不同表现。同时,探讨了Oracle数据库中特定的连接语法,如自然连接和USING子句的用法。 阅读详情

相关推荐

使用Label Studio标注车牌数据:YOLOv26模型训练指南

在计算机视觉领域,数据标注是模型训练的基础环节,直接影响最终模型的识别精度。Label Studio作为专业的标注工具,支持多种标注类型和格式导出,特别适合目标检测任务的数据准备。通过多边形标注技术,可以精确捕捉车牌的四个角点,生成旋转矩形框(OBB)标注数据,这种标注方式相比传统水平框能更好地处理倾斜车牌场景。标注完成后,数据可导出为YOLO格式,直接用于YOLOv26等先进目标检测模型的训练。在实际工程中,合理的标注策略和严格的质量控制能显著提升车牌识别模型在复杂场景下的鲁棒性,适用于智能交通、停车场管

chuozhi7142的博客 891

sql中什么时候用内连接查询,什么时候用外连接查询

需要查找两张表同时存在的数据,使用内连接 需要查找两张表中一张表存在,另一张表不存在的时候使用左外链接 或 右外链接 内连接的查询结果都是满足连接条件的元组。但有时我们也希望输出那些不满足连接条件的元组信息。比如,我们想知道每个学生的选课情况,包括已经选课的学生(这部分学生的学号在学生表中有,在选课表中也有,是满足连接条件的),也包括没有选课的学生(这部分学生的学号在学生表中有,但在选课表中没有

jokismithjs的博客 4520

100天精通Python(基础篇)——第3天:运算符全解析(算术运算符、比较运算符、逻辑运算符、赋值运算符及其优先级规则)

100天精通Python(基础篇)——第3天:运算符全解析(算术运算符、比较运算符、逻辑运算符、赋值运算符及其优先级规则)

努力让自己发光,对的人才能迎着光而来 14万+

sql的四种连接——左外连接、右外连接内连接、全连接

结果:左表(customer)只选取customer_id在右表出现过的结果(符合条件的first_name和last_name,所以最后两行中first_name和last_name都有NULL值)结果:右表(order)只选取customer_id在左表出现过的结果(符合条件的order_date, order_amount,所以最后两行中date和amount都有NULL值)二、 左外连接(left outer join,outer可省略)结果:(左边有右边没有,和右边有左边没有的地方有NULL值)

ximenxiafeng的专栏 6044

SQL连接的理解和使用(内连接:自然连接&等值连接,外连接:左连接&右连接&全外连接

连接(Join)是指将两个或多个表中的数据按照一定的条件关联起来,形成一个新的虚拟表。也可以理解为两个表的笛卡尔积中筛选符合条件的行。什么是笛卡尔积?

海蒂 1万+

SQL内连接外连接区别

内连接 外连接区别以及使用场景

qq_57657959的博客 2018

sql中什么时候用内连接查询,什么时候用外连接查询?用起来好像一样啊!

我用内连接查询和外连接查询的结果是一样的,两者有什么不同? 需要查找两张表同时存在的数据,使用内连接需要查找两张表中一张表存在,另一张表不存在的时候使用左外链接 或 右外链接内连接的查询结果都是满足连接条件的元组。但有时我们也希望输出那些不满足连接条件的元组信息。比如,我们想知道每个学生的选课情况,包括已经选课的学生(这部分学生的学号在学生表中有,在选课表中也有,是满足连接条件的),也包括没有

每天进步一点点! 1万+

SQL内连接外连接

SQL内连接(INNER JOIN) 返回两张表中符合连接条件的数据行 内连接是从结果表中删除被连接表中未匹配行的所有行,所以内连接可能会丢失信息 写法一: 语法:SELECT * FROM表1 INNER JOIN表2 ON条件 eg:查询Student表中学生的成绩,SQL语句如下: SELECT * FROMstudent INNER JOIN Score ON Student.id = Score.studen...

xy的博客 3450

SQL语句的连接-内连接 外连接

SQL内、外连接~

Stephanie翟倩 1万+

sql 自然连接、内连接外连接、交叉连接

一、自然连接(natural join)     自然连接(Natural join)是一种特殊的等值连接,要求两个关系表中进行比较的属性组必须是名称相同的属性组,并且在结果中把重复的属性列去掉(即:留下名称相同的属性组中的其中一组)。 表A Aname Bid salary Getz 1 3000

TangLinCSDN的专栏 2万+

SQL中的内连接查询和外连接查询

在项目开发中,单表的查询肯定无法满足所有的业务,所以很多时候都是多表的连接查询。接下来总结一下SQL中的多表关联查询,以MySQL为例。 前期准备 在数据库中创建以下几张表并添加一些数据。 1、部门表(tb_dept),如下 2、员工表(tb_emp),如下。可以看到后勤中心是没有员工的,一会看区别。 3、工资表(tb_salary),如下 三张表的关系是,一个部门有多个员...

好记性不如烂笔头 2万+

sql内连接外连接和自连接查询

一. 前言: 通常在项目中对表的查询都是关联多张表,多表查询就涉及到sql内连接外连接和自连接查询。本篇文章将简单的介绍这些sql连接的使用,希望对大家有所帮助。 二. 数据准备: 先准备两张表: 1. 学生表:student select * from student; 2. 教师表:teacher select * from teacher;

技术人生 2万+

数据库之SQL(基本连接,内连接,左外连接,右外连接,全外连接,交叉连接,自连接)

之前的博客内容我们分享了数据表的查询管理,但那只是针对数据库中的一个表格进行的查询管理,现在如果我们想要同时看到两个数据表中的数据的话,那要怎么办呢?采用多连接查询的方式。 SQL中有哪几种多连接的方式? 有七种连接的方式: 基本连接,内连接,左外连接,右外连接,全外连接,交叉连接,自连接 如果对连接方式了解的人看到这里会感到很熟悉,但对于不了解的人...

Elsa~的博客 1万+

sql内连接外连接区别

对于两张表,外连接内连接区别在于: 内连接:只显示两表id匹配的左外连接:显示join左边的表的所有数据(不管两表是否匹配),对于不匹配的部分都用NULL显示右外连接外连接相反,显示join右边的表的所有数据 我们直接用题来解释。 假设有两个表stu和exam,该表结构如上,我们要显示所有学生的成绩,那么内连接外连接的方式分别为(插入数据请自己补全): create ...

little_spice的博客 2万+

SQL 连接类型示例:内连接外连接

本文介绍了SQL中四种主要的连接类型及其区别。通过员工表和部门表的示例数据,展示了每种连接的实际效果:内连接只返回匹配行;左连接保留左表全部记录;右连接保留右表全部记录;全连接保留两表所有记录。最后总结了关键区别内连接仅匹配行,左/右连接分别保留左/右表全部数据,全连接保留两表所有数据。特别指出MySQL不支持全连接,但可通过组合左/右连接实现类似功能。

lybugproducer的博客 611

sql 内连接外连接

测试表 t1 表 mysql> show create table t1\G *************************** 1. row *************************** Table: t1 Create Table: CREATE TABLE `t1` ( `m1` int(11) DEFAULT NULL, `n1` char(1) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 1 ro

power_to_go 569

深入浅出SQL连接:掌握内连接外连接的核心原理

在关系型数据库中,数据通常被规范化为多个相互关联的表。这就是SQL连接的典型应用场景。,直观查看连接操作的具体执行过程!建议在开发过程中使用。

abigale3333的博客 1338
上一篇: 墨菲定律--
下一篇: SQL学习总结(四)
hellowheat
博客等级 码龄20年 12粉丝 31原创
评论 14
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值