数据库内连接、左连接、右连接详解

article/2025/9/15 3:55:19

    用一句话概括就是:左连接就是左边全部保留按条件查出右边,右连接就是右边全部保留按条件查出左边。

说得有点抽象,其实并没有什么难度,还是自己运行下数据库就明白了。

数据库建表语句如下:

create database if not exists `emp`;
USE `emp`;
DROP TABLE IF EXISTS `dept`;
CREATE TABLE `dept` (
`depid` varchar(50) NOT NULL,
`deptname` varchar(100) default NULL,
PRIMARY KEY  (`depid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert  into `dept`(`depid`,`deptname`) values ('01','部门1'),('02','部门2'),('03','部门3'),('04','部门4');
DROP TABLE IF EXISTS `emp`;
CREATE TABLE `emp` (
`empid` varchar(50) NOT NULL,
`empname` varchar(50) default NULL,
`depid` varchar(50) default NULL,
PRIMARY KEY  (`empid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert  into `emp`(`empid`,`empname`,`depid`) values ('0001','柳梦璃','01'),('0002','韩菱纱','01'),('0003','云天河','02'),('0004','慕容紫英','03'),('0005','玄霄',NULL),('0006','九天玄女',NULL);


从上表可以看出,部门4下没有员工,玄霄和九天玄女没有所属部门。


左连接:select * from dept d left join emp e on d.depid=e.depid;


右连接:select * from dept d right join emp e on d.depid=e.depid;



内连接:select * from dept d inner join emp e on d.depid=e.depid;



内连接可省略inner关键字。




http://chatgpt.dhexx.cn/article/SVsrbSdk.shtml

相关文章

数据库查询之内连接,左连接,右连接

数据库查询之内连接,左连接,右连接 连接查询 当查询结果的列来源于多张表时,需要将多张表连接成一个大的数据集,再选择合适的列返回 等值连接查询:查询的结果为两个表匹配到的数据 左连接查询:查询的结果为…

数据库中外连接的三种形式(左连接,右连接,全连接)

外连接 左外连接语法格式 Select a.班级信息,a.班级信息, b.姓名, b.联系方式 From班级信息 a left outer** (可省略)join 辅导员信息 b on a.辅导员b.辅导员编号 分析: 右连接 Select a.班级信息,a.班级信息, b.姓名, b.联系方式 From 班…

【Mysql数据库】终于搞懂了左连接、右连接、内连接、全连接

😄作者简介: 小曾同学.com,一个致力于测试开发的博主⛽️,主要职责:测试开发、CI/CD 如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。😊 座右铭:不想…

数据库的内连接、左连接和右连接

今天在CSDN上看到一个非常浅显易懂的左右连接和内连接的例子,简直秒啊,记录一下 具体演示前提: 创建两个表: 用两个表(a_table 和 b_table),关联字段 a_table.a_id 和 b_table.b_id 来演示一下…

MySQL数据库的内连接、左连接、右连接、全连接/联合查询

目录 1 概念 2 内连接 3 左连接 4 右连接 5 全连接/联合查询 1 概念 内连接 inner join:只返回两个表中连接字段相等的记录。左连接 left join:返回包括左表中的所有记录和右表中连接字段相等的记录。右表中没有则以null显示.右连接 right join&…

数据库中左连接和等值连接

数据库中左连接和等值连接 inner join(等值连接) 只返回两个表中联结字段相等的行 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录 例如: 我们先创建两个表&am…

数据库左连接、右连接、内连接、全连接笔记

原英文文章链接:https://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins 准备 表A: -- auto-generated definition CREATE TABLE table_a (PK INT(10) NOT NULLPRIMARY KEY,Value VARCHAR(25) NULL )COMMENT 表A;表B&#xff1a…

Spring Boot整合Mybatis及事务处理

MyBatis为了方便与Spring Boot集成,专门提供了一个符合其规范的starter项目mybatis-spring-boot-starter。因此,我们只需在pom.xml添加相关依赖即可轻松集成。下面介绍了Spring Boot整合Mybatis的具体步骤以及事务使用(包含解决事务失效的坑&…

Mybatis-事务管理,事务配置

事务的特征– 1.原子性 事务是数据库的逻辑工作单位,事务中包括的所有操作,要么全做,要么全部做 2.一致性 事务执行的结果必须是使数据库从一个一致性状态飙到另一个一致性状态,一致性与原子性是密切相关 3.隔离性 一个事务的执行…

springboot+mybatis整合配置事务详解(^_^)

springboot集成mybatis有三种方式: 一、最简单的方式就是使用MyBatis官方提供的 mybatis-spring-boot-starter。 二、另一种使用spring-mybatis包的xml配置方式,这样需要自己写一些代码,但可以更灵活的控制mybatis的各项配置。 三、使用引…

第08篇:Mybatis事务处理

一、Jdk底层实现 Java JDK中提供了标准接口Connection,不同的数据库驱动负责具体的实现。后面无论是Spring还是Mybatis对事务的处理,无论怎么的封装,最终究其到底都是由Connection来提供的能力。 public interface Connection extends Wrapper, AutoCloseable { …

Mybatis中的事务提交

数据表不支持事务,mybatis会直接提交数据,即增删改不需要commit(MyISAM引擎不支持事务); 数据表支持事务,默认mybatis需要手动提交事务,也可以设置为自动提交,如下 (设…

Mybatis 的事务控制

事务:访问并可能更新数据库中各种数据项的一个程序执行单元(unit) 事务的四个特性:原子性、一致性、隔离性、持久性 不考虑隔离性的三个问题:丢失修改、不可重复读,读脏数据 解决办法:四种隔离级别文章目录 一、Mybati…

Mybatis深入之事务管理

Mybatis之事务管理 简介 Mybatis的事务管理分为两种JdbcTransaction,ManagedTransaction。其中JdbcTransaction仅仅是对数据库连接Connection的一个包装、内部管理数据库事务还是调用Connection的提交、回滚等事务操作方法。ManagedTransaction更直接、什么也没有…

事务-2 Spring与Mybatis事务实现原理

背景: 本文承接事务-1 事务隔离级别和Spring事务传播机制,是事务专题的第二篇;主题内容是Mybatis和Spring事务原理,结合源码和案例进行介绍。 本文主题内容为事务原理, 尤重Spring事务原理; 会结合源码讲解整体流程, 但不会拘限于…

什么是事务?Mysql事务怎么用?Mybatis怎么操作事务的?Spring呢?快进来看看

目录 一、计算机中的事务 1. 概念 2.事务的ACID特性 3.事务类型 1)手动事务 2)自动事务 4.为什么需要事务? 5.优点 二、MySQL事务 1.语法格式: 2.关闭自动提交,开启新事务 3.开启自动提交,关闭事务控制 三、Mybatis事务 Mybatis开关事务控…

SpringBoot Mybatis事物管理

本文主要讲述springboot提供的声明式的事务管理机制。 一、一些概念 声明式的事务管理是基于AOP的,在springboot中可以通过Transactional注解的方式获得支持,这种方式的优点是: 1)非侵入式,业务逻辑不受事务管理代码…

spring boot配置mybatis和事务管理

spring boot配置mybatis和事务管理 一、spring boot与mybatis的配置 1.首先,spring boot 配置mybatis需要的全部依赖如下&#xff1a; <!-- Spring Boot 启动父依赖 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>s…

《深入理解mybatis原理》 MyBatis事务管理机制

MyBatis作为Java语言的数据库框架&#xff0c;对数据库的事务管理是其非常重要的一个方面。本文将讲述MyBatis的事务管理的实现机制。首先介绍MyBatis的事务Transaction的接口设计以及其不同实现JdbcTransaction 和 ManagedTransaction&#xff1b;接着&#xff0c;从MyBatis的…

MyBatis事务管理

一、概述 事务管理对于企业应用来说是至关重要的&#xff0c;即使出现异常情况&#xff0c;它也可以保证数据的一致性。 Spring Framework对事务管理提供了一致的抽象&#xff0c;其特点如下&#xff1a; 为不同的事务API提供一致的编程模型&#xff0c;比如JTA(Java Transac…