iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >SQL如何连接查询2 外连接
  • 801
分享到

SQL如何连接查询2 外连接

2024-04-02 19:04:59 801人浏览 薄情痞子
摘要

这篇文章主要介绍了sql如何连接查询2 外连接,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 外连接主要包括左连接、右连接和完整外部连接。 

这篇文章主要介绍了sql如何连接查询2 外连接,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

 外连接主要包括左连接、右连接和完整外部连接。

  1)左连接:Left Join 或 Left Outer Join

      左连接的结果集包括LEFT OUTER子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值(Null)。

  我们看对应的SQL语句:

Select Student.StudentName,Student.StudentAge,BorrowBook.BorrowBookName,BorrowBook.BorrowBookPublish

From Student
Left JOIN BorrowBook

On Student.StudentID = BorrowBook.StudentID

  运行的结果如下:

StudentName StudentAge BorrowBookName BorrowBookPublish

---------------------------------------------------------------------------------

张三 25 马克思主义政治经济学 电子工业出版社

李四 26 ***思想概论 高等教育出版社

王五 27 邓小平理论 人民邮电出版社

赵六 28 大学生思想道德修养 中国铁道出版社
无名氏 27 NULL NULL

  (所影响的行数为 5 行)

  可以看到的是,它查询的结果是以左表Student为主,Student对应的StudentID在右表BorrowBook如果不存在的话,就会用NULL值来代替。

  2) 右连接:Right Join 或 Right Outer Join

  右连接和左连接相反,它将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值(Null)。

  我们看对应的SQL语句

Select Student.StudentName,Student.StudentAge,BorrowBook.BorrowBookName,BorrowBook.BorrowBookPublish

From Student
Right JOIN BorrowBook

On Student.StudentID = BorrowBook.StudentID

  运行的结果如下:

StudentName StudentAge BorrowBookName BorrowBookPublish

----------------------------------------------------------------------------------------------------------------------

张三 25 马克思主义政治经济学 电子工业出版社

李四 26 ***思想概论 高等教育出版社

王五 27 邓小平理论 人民邮电出版社

赵六 28 大学生思想道德修养 中国铁道出版社

NULL NULL C语言程序设计 高等教育出版社

(所影响的行数为 5 行)

  可以看到的是,它查询的结果是以右表BorrowBook为主,BorrowBook对应的StudentID在左表Student如果不存在的话,就会用NULL值来代替。

  3) 完整外部联接:Full Join 或 Full Outer Join

  完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。

  我们看对应的SQL语句

Select Student.StudentName,Student.StudentAge,BorrowBook.BorrowBookName,BorrowBook.BorrowBookPublish

From Student
FULL OUTER JOIN BorrowBook

On Student.StudentID = BorrowBook.StudentID

  结果如下:

StudentName StudentAge BorrowBookName BorrowBookPublish ----------------------------------------------------------------------------------------------------------------------

NULL NULL C语言程序设计 高等教育出版社

张三 25 马克思主义政治经济学 电子工业出版社

李四 26 ***思想概论 高等教育出版社

王五 27 邓小平理论 人民邮电出版社

赵六 28 大学生思想道德修养 中国铁道出版社

无名氏 27 NULL NULL

  (所影响的行数为 6 行)

  可以看到的是,它查询的结果除了把相对应完全匹配的记录查出来以后,还会把左连接及右连接两种情形都包括,对应的值用NULL值来代替。

    交叉连接

  交叉连接(CROSS JOIN),就是指不带W H E R E子句的查询。在数学上,就是表的笛卡尔积。也就是它查询出来的记录数行为两个表的乘积,对应记录也就是为表A*表B。

我们看对应的SQL语句

  Select Student.StudentName,Student.StudentAge,BorrowBook.BorrowBookName,BorrowBook.BorrowBookPublish

  From Student Cross Join BorrowBook

  运行的结果如下:

StudentName StudentAge BorrowBookName BorrowBookPublish

---------------------------------------------------------------------------------

张三 25 马克思主义政治经济学 电子工业出版社

李四 26 马克思主义政治经济学 电子工业出版社

王五 27 马克思主义政治经济学 电子工业出版社

赵六 28 马克思主义政治经济学 电子工业出版社

无名氏 27 马克思主义政治经济学 电子工业出版社

张三 25 ***思想概论 高等教育出版社

李四 26 ***思想概论 高等教育出版社

王五 27 ***思想概论 高等教育出版社

赵六 28 ***思想概论 高等教育出版社

无名氏 27 ***思想概论 高等教育出版社

张三 25 邓小平理论 人民邮电出版社

李四 26 邓小平理论 人民邮电出版社

王五 27 邓小平理论 人民邮电出版社

赵六 28 邓小平理论 人民邮电出版社

无名氏 27 邓小平理论 人民邮电出版社

张三 25 大学生思想道德修养 中国铁道出版社

李四 26 大学生思想道德修养 中国铁道出版社

王五 27 大学生思想道德修养 中国铁道出版社

赵六 28 大学生思想道德修养 中国铁道出版社

无名氏 27 大学生思想道德修养 中国铁道出版社

张三 25 C语言程序设计 高等教育出版社

李四 26 C语言程序设计 高等教育出版社

王五 27 C语言程序设计 高等教育出版社

赵六 28 C语言程序设计 高等教育出版社

无名氏 27 C语言程序设计 高等教育出版社

  (所影响的行数为 25 行)

  可以看到的是,它把表Student中的每一行和BorrowBook中的每一条记录都进行关联,返回的记录数为5*5=25行,即笛卡尔积,它执行的语句也就等效于

  Select Student.StudentName,Student.StudentAge,BorrowBook.BorrowBookName,BorrowBook.BorrowBookPublish

  From Student,BorrowBook

感谢你能够认真阅读完这篇文章,希望小编分享的“SQL如何连接查询2 外连接”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网数据库频道,更多相关知识等着你来学习!

您可能感兴趣的文档:

--结束END--

本文标题: SQL如何连接查询2 外连接

本文链接: https://www.lsjlt.com/news/71630.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SQL如何连接查询2 外连接
    这篇文章主要介绍了SQL如何连接查询2 外连接,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 外连接主要包括左连接、右连接和完整外部连接。 ...
    99+
    2022-10-19
  • mysql 连接查询(俗称连表查询)内连接、外连接、自然连接
    连接查询的分类 本文讨论中用到的测试数据``create table student(id int primary key auto_increment,name varchar(10));ins...
    99+
    2022-10-18
  • SQL数据查询——连接查询
    文章目录 一、等值和非等值连接查询1.等值连接查询2.非等值连接查询 二、自连接与非自连接三、内连接与外连接1.内连接2.外连接使用左外连接还是右外连接?满外连接 四、UNIO&...
    99+
    2023-10-26
    sql 数据库 mysql oracle
  • Sql连接查询命令
    本篇内容主要讲解“Sql连接查询命令”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Sql连接查询命令”吧!连接查询通过连接运算符可以实现多个表查询。连接是关系数...
    99+
    2022-10-18
  • sql的四种连接——左外连接、右外连接、内连接、全连接
    一、内连接   满足条件的记录才会出现在结果集中。 二、 左外连接(left outer join,outer可省略) 左表全部出现在结果集中,若右表无对应记录,则相应字段为NULL   举例说明: 客户表: 订单表: 左外连接(...
    99+
    2023-09-10
    sql mysql 数据库
  • SQL连接表(内连接、左连接、右连接、交叉连接、全外连接)
    分享一些自己的连表总结 什么是连接表? 多表查询原理:将多个表通过笛卡尔积形成一个虚表,再根据查询条件筛选符合条件的数据。 在关系数据库中,数据分布在多个逻辑表中。 要获得完整有意义的数据集,需要使...
    99+
    2023-09-21
    数据库 sql mysql sqlserver
  • 深入理解SQL的四种连接-左外连接、右外连接、内连接、全连接
    内联接(典型的联接运算,使用像 =  或 之类的比较运算符)。包括相等联接和自然联接。      内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如,检索 students和courses表中学生标识号相同的所有行。    ...
    99+
    2019-01-06
    深入理解SQL的四种连接-左外连接 右外连接 内连接 全连接
  • SQL连接的理解和使用(内连接:自然连接&等值连接,外连接:左连接&右连接&全外连接)
    目录 一、连接的介绍连接是什么?连接分几种?条件连接等值连接自然连接 二、连接的使用内连接 INNER JOIN内连接与等值连接区别内连接与自然连接区别 外连接 OUTE...
    99+
    2023-09-17
    sql 数据库 mysql
  • MySQL总结(十)表连接查询(内、外连接)-详解
    表连接查询 1.什么是多表查询 准备数据 # 创建部门表 create table dept( id int primary key auto_increment, name varchar(20) ) insert...
    99+
    2020-11-18
    MySQL总结(十)表连接查询(内 外连接)-详解
  • mysql外连接与内连接查询的不同之处
    外连接的语法如下: SELECT 字段名称 FROM 表名1 LEFT|RIGHT|FULL| [OUTER] JOIN 表名2   ON 表名1.字段名1=表面...
    99+
    2022-11-12
  • mysql外连接查询怎么用
    本篇内容主要讲解“mysql外连接查询怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql外连接查询怎么用”吧!说明外连接不仅返回符合连接和查询条件的数据行,还返回一些不符合条件的行。...
    99+
    2023-06-20
  • SQL如何实现多表连接查询
    小编给大家分享一下SQL如何实现多表连接查询,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! 按连接方式分为等连接、非等连接、外连接、自连接、多表关联等1、等连...
    99+
    2022-10-19
  • SQL中的连接查询详解
    Join 连接 (SQL Join) SQL Join (连接) 是利用不同数据表之间字段的关连性来结合多数据表之检索。 SQL Join是结合多个数据表而组成一抽象的暂时性数据表以供数据查...
    99+
    2022-06-18
    SQL 连接查询
  • SQL Server中怎么连接查询
    SQL Server中怎么连接查询,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。什么是连接查询呢?概念:根据两个表或多个表的列之间的关系,从这...
    99+
    2022-10-18
  • sql语句中左外连接、右外连接、内连接是什么
    小编给大家分享一下sql语句中左外连接、右外连接、内连接是什么,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!以下的代码演示均基于name表和country表展开。name表idname1西...
    99+
    2022-10-18
  • mysql中外连接与内连接查询有什么区别
    mysql中外连接与内连接查询有什么区别?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。左外连接左外连接的结果集包含左表的所有记录和右表中满足连接条件的记录,结果...
    99+
    2023-06-15
  • sql语句之内连接与外连接
    内连接: 查询效率:速度较快 内存占用:先笛卡尔积,再进行where晒减,内存占用在初期笛卡尔积的时候会很大。 内连接占用内存空间大 显示内连接和隐式内连接除了写法不一样,其他没有什么不同 外连接: 查询效率:一般...
    99+
    2021-08-12
    sql语句之内连接与外连接
  • mysql连接查询左连接,右连接,内连接的示例
    小编给大家分享一下mysql连接查询左连接,右连接,内连接的示例,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、mysql常用连接INNER JOIN(内连接,或等值连接):获取两个表中...
    99+
    2022-10-18
  • mysql连接查询
    11.5连接查询(列连接) 问题:学生表有十条数据,成绩表有十条数据。 连接之后有多少条数据(笛卡尔积):10*10=100   连续查询会产生笛卡尔积;假设集合A = {a,b},集合B = {c,d} 两个集合的笛卡尔积{(a,c),...
    99+
    2020-01-06
    mysql连接查询
  • SQL中内连接和外连接的区别
    在这篇文章中,我们将了解 SQL 中内连接和外连接的区别。内连接子句使用的是“INNER JOIN”和“JOIN”。它返回两个或多个表的组合元组。当没有共同属性时,结果为空。如果元组数量较多,则“INNER JOIN”比“OUTER”工作得...
    99+
    2023-10-22
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作