高频面试八股文原理篇(六) mysql数据库的左连接,右连接,内链接有何区别

news2024/11/16 7:22:54

目录

内连接与外连接的区别

在sql中l外连接包括左连接(left join )和右连接(right join),全外连接(full join),内连接(inner join)


内连接与外连接的区别

自连接
一个表与它自身进行连接,数据均在一张表中。

  • 内连接

多表联查的另一种书写形式,可以匹配出两张表中符合查询条件的数据,其中包含等值连接、非等值连接、自然连接。

等值连接
       连接条件中使用“=”进行连接查询,结果集中包含重复列
非等值连接
      连接条件中使用非=进行连接查询
自然连接
      使用两表中的同名列进行等值连接查询(列名及列数据类型均一致,等值连接中不做列同名要求),结果集中去除重复列,是去除重复列的等值连接

  • 外连接

主要分为左外连接、右外连接、全外连接
 

在sql中l外连接包括左连接(left join )和右连接(right join),全外连接(full join),内连接(inner join)

  • 左外连接(左连接):返回包括左表中的所有记录和右表中连接字段相等的记录。

将返回右表的所有行。如果左表的某行在右表中没有匹配行,则将为右表返回空值。

以左表为主表,右表没数据为null

 

  • 右外连接(右连接):返回包括右表中的所有记录和左表中连接字段相等的记录。

将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值;

以右表为主表,左表中没数据的为null

 

  • 全外连接(全连接):返回左右表中所有的记录和左右表中连接字段相等的记录。

FULL JOIN 或 FULL OUTER JOIN

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

如果表之间有匹配行,则整个结果集行包含基表的数据值。

 

  • 内连接

内连接则不要求两属性列同名,可以用using或on来指定某两列字段相同的连接条件。

 

 Select * from table1 inner join table2 on table1.A=table2.E;

变型:

 

 

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

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

相关文章

Redis(一)常见命令使用

常见文件名Redis-cli使用命令1、启动Redis2、连接Redis3、停止Redis4、发送命令1、redis-cli带参数运行,如:2、redis-cli不带参数运行,如: 5、测试连通性 key操作命令获取所有键查询键是否存在删除键查询键类型移动键查询key的生命…

第二十章行为性模式—迭代器模式

文章目录 迭代器模式解决的问题结构实例存在的问题适用场景 JDK 源码 - Iterator 行为型模式用于描述程序在运行时复杂的流程控制,即描述多个类或对象之间怎样相互协作共同完成单个对象无法单独完成的任务,它涉及算法与对象间职责的分配。行为型模式分为…

“30分钟”带你走进线性回归的世界,轻松学习互联网营销推荐算法!

前言 本章主要介绍用于推荐系统的算法-线性回归算法的推导介绍,文章思路如下:由机器学习介绍,到监督学习,并重点介绍监督学习中回归问题里面的线性回归问题及推导。 可能需要大家具备一定的统计学、高数相关知识。 一、由机器学…

k8s入门(一)之pod创建、label使用、污点、亲和性、RS

一、创建一个pod [rootmaster01 ~]# kubectl create ns prod [rootmaster01 ~]# cat pod.yaml apiVersion: v1 kind: Pod metadata:name: pod-demonamespace: prodlabels:app: myapp spec:containers:- name: test1image: busybox:latestcommand:- "/bin/sh"- "…

问题记录 bug1-系统上电挂载异常分区,df与du命令查看文件使用大小显示不一样

linux磁盘分区 在Linux中,一切皆目录,每一块硬盘分区对应Linux的一个目录,所以我们可以通过管理目录来管理硬盘分区,而将硬盘分区与文件目录关联的操作就称为“挂载”【mount】,反之为“卸载”【unmount】 emmc&…

C高级 text

1.从命令行传参传入两个整数,整数1代表从整数几开始求和,整数2代表求和到整数几为止 2.打印99乘法表 3.输入年月日,计算是该年的第几天 1. 2. 3.

Linux进程基础

进程指正在运行的程序,如下图示,是资源分配的最小单位,可以通过“ps ”或“top”等命令查看正 在运行的进程,线程是系统的最小调度单位,一个进程可以拥有多个线程,同一进程里的线程可以共享此 进程的同一资…

Server版支持即将到期,Jira和Confluence如何迁移?(2)

到2024年2月,Atlassian将终止对Server产品及插件的所有支持。是时候制定您的迁移计划了——Atlassian为您提供两种迁移选择,一是本地部署的数据中心版本,中国用户25人以上即可使用,二是云版。作为Atlassian全球白金合作伙伴&#…

Markdown可以在线编辑吗?这个办法很好用

Markdown是一种轻量级标记语言,它使用简单的语法来创建文本,非常易于学习。它最初被设计为一种用于写作的格式,但现在已经成为了一种非常受欢迎的文本编辑工具。 作为一个较为方便的在线文本编辑器,它可以用代码代替文字&#xf…

一篇完整的测试方案怎么写

看上面的目录,详细 文档说明 文档名称 创建人/修改人 版本 时间 备注 v1.0 2022-11-17 新建 v1.1 2022-11-25 v1.2 2022-12-05 v2.0 2022-12-13 v2.1 2022-12-14 一、文档目的 为软件开发项目管理者、软件工程师、系统维护工程师、测试…

如何开发合成物品功能?

UE5 插件开发指南 前言0 数据结构1 合成面板UI组件2 小结前言 现在策划有一个合成物品的需求:可以将多个低级物品合成高级物品,如果背包中已有低级物品了,合成时需要减掉物品的费用,只需要支付合成费;提供玩家一个合成物品的层级视图,以便于玩家有节奏的购买物品,如下图…

电影《刀剑神域进击篇:暮色黄昏》观后感

上周看了电影《刀剑神域进击篇:暮色黄昏》,刀剑神域系列质量还是非常不错的, 本部电影讲述主角团队攻克boss,阻止公会团体互相打架的故事。 刀剑系列,记得当初是以一部连载动漫为开端,如果不是特别喜欢看动…

计算机网络—HTTP基本概念、HTTPS、HTTP状态码、HTTP缓存、HTTP请求

参考小林coding HTTP基本概念 HTTP是超文本传输协议。所谓的超文本,就是超越了普通文本的文本,最关键的是有超链接,能从一个超文本跳转到另一个超文本。 HTML是最常见的超文本,本身是纯文字文件,但是内部使用很多标签…

Scrum敏捷项目管理实例

这是一个Scrum敏捷单团队敏捷开发示例。 1、建立产品路线图 首先我们需要为这个项目创建一个产品路线图,产品路线图是一个高层次的战略计划,它描述了产品在未来一段时间可能会如何发展和壮大,产品路线图确保整个产品团队持续关注产品的目标…

GEE:对Landsat遥感影像进行处理,水体提取与可视化

作者:CSDN @ _养乐多_ 本文介绍了通过Google Earth Engine平台,并使用Landsat卫星遥感数据提取水体掩膜的方法和代码。通过裁剪和去除云等处理步骤,最终得到具有水体掩膜的影像,并进行可视化和导出。这种方法基于归一化水体指数(MNDWI)和OTSU阈值计算技术,使用了一个自…

MyBatis(MyBatis环境搭建,单表操作)

目录 MyBatis 环境搭建 1.添加 Mybatis 框架支持 2.设置 MyBatis 配置信息 2.1.设置数据库连接的相关信息 2.2 Mybatis xml 保存路径和 xml命名格式 ​编辑 MyBatis 模式开发 Mybatis xml 模板 查询表内容 单元测试 以根据id,查询用户对象这个方法为例 获取动态参数的…

警惕,最近的副业兼职诈骗。

大家好,我是鸟哥。 今天和大家聊聊最近超级猖狂的几类诈骗。 一、副业诈骗。最近两年“副业刚需”这个口号很流行,尤其是今年,职场动荡、工作难找,副业刚需变成了副业焦虑,骗子们也正是抓住了大家的这个心理&#xf…

【Vue全家桶实现电商系统】— VSCode配置Git(二)

【Vue全家桶实现电商系统】— VSCode配置Git(二) 当我们在VScode中编写代码后,需要提交到git仓库时,但是我们又不想切换到git的命令行窗口,我们可以在 VScode中配置git,然后就可以很方便快捷的把代码提交…

JavaScript中的Hook技术:特性、优点、缺点和使用场景

引言: 随着JavaScript的不断发展,开发者们正在寻找更灵活和可扩展的方式来修改或扩展现有的代码。其中一种广泛应用的技术是"Hook",它允许开发者拦截和修改现有的函数或方法的行为。本文将详细介绍JavaScript中的Hook技术&#xf…

软件确认测试、验收测试和系统测试有什么区别和联系?

软件确认测试、验收测试和系统测试都是软件测试过程中的重要环节,它们各自有不同的测试侧重点和目标,但也有一些联系。 1、软件确认测试 称为单元测试或白盒测试,是对软件中各个模块的基本功能进行测试的一种测试方式,主要使用…