建表

在这里呢我们先来建立两张有外键关联的张表。

CREATE DATABASE db0206;
USE db0206; CREATE TABLE `db0206`.`tbl_dept`(
`id` INT(11) NOT NULL AUTO_INCREMENT,
`deptName` VARCHAR(30),
`locAdd` VARCHAR(40),
PRIMARY KEY (`id`)
) ENGINE=INNODB CHARSET=utf8; CREATE TABLE `db0206`.`tbl_emp`(
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(20),
`deptId` INT(11),
PRIMARY KEY (`id`),
FOREIGN KEY (`deptId`) REFERENCES `db0206`.`tb_dept`(`id`)
) ENGINE=INNODB CHARSET=utf8;
/*插入数据*/
INSERT INTO tbl_dept(deptName,locAdd) VALUES('RD',11);
INSERT INTO tbl_dept(deptName,locAdd) VALUES('HR',12);
INSERT INTO tbl_dept(deptName,locAdd) VALUES('MK',13);
INSERT INTO tbl_dept(deptName,locAdd) VALUES('MIS',14);
INSERT INTO tbl_dept(deptName,locAdd) VALUES('FD',15); INSERT INTO tbl_emp(NAME,deptId) VALUES('z3',1);
INSERT INTO tbl_emp(NAME,deptId) VALUES('z4',1);
INSERT INTO tbl_emp(NAME,deptId) VALUES('z5',1); INSERT INTO tbl_emp(NAME,deptId) VALUES('w5',2);
INSERT INTO tbl_emp(NAME,deptId) VALUES('w6',2); INSERT INTO tbl_emp(NAME,deptId) VALUES('s7',3); INSERT INTO tbl_emp(NAME,deptId) VALUES('s8',4);

文氏图与SQL语句的编写以及查询结果

内连接

内连接文氏图

执行的sql语句以及执行的查询结果

  • 执行的sql语句
select * from tbl_dept a inner join tbl_emp b on a.id=b.deptId;
  • 查询结果 

左外连接

左外连接文氏图

执行的sql语句以及执行的查询结果

  • 执行的sql语句
select * from tbl_dept a left join tbl_emp b on a.id=b.deptId;
  • 查询结果 

右外连接

右外连接文氏图

执行的sql语句以及执行的查询结果

  • 执行的sql语句
select * from tbl_dept a right join tbl_emp b on a.id=b.deptId;
  • 查询结果 

左连接

左连接文氏图

执行的sql语句以及执行的查询结果

  • 执行的sql语句
elect * from tbl_dept a left join tbl_emp b on a.id=b.deptId where b.deptId is null;
  • 查询结果

右连接

右连接文氏图

执行的sql语句以及执行的查询结果

  • 执行的sql语句
select * from tbl_dept a right join tbl_emp b on a.id=b.deptId where a.id is null;
  • 查询结果

全连接

全连接文氏图

执行的sql语句以及执行的查询结果

  • 执行的sql语句
select * from tbl_dept a right join tbl_emp b on a.id=b.deptId
union
select * from tbl_dept a left join tbl_emp b on a.id=b.deptId;
  • 查询结果 

两张表中都没有出现的数据集

文氏图

执行的sql语句以及执行的查询结果

  • 执行的sql语句
select * from tbl_dept a right join tbl_emp b on a.id=b.deptId where a.id is null union select * from tbl_dept a left join tbl_emp b on a.id=b.deptId where b.deptId is null;
  • 查询结果

 
 

MYSQL 的七种join的更多相关文章

  1. MySQL的七种join

    转载 原文地址 建表 在这里我们先建立两张有外键关联的两张表: CREATE DATABASE db0206; USE db0206; CREATE TABLE `db0206`.`tbl_dept` ...

  2. MySQL 的七种 join

    建表 在这里呢我们先来建立两张有外键关联的张表. CREATE DATABASE db0206; USE db0206; CREATE TABLE `db0206`.`tbl_dept`( `id` ...

  3. 【知识库】-数据库_MySQL 的七种 join

    掘金作者:haifeisi 文章出处: MySQL 的七种 join Learn [已经过测试校验] 一.内连接 二.左外连接 三.右外连接 四.左连接 五.右连接 六.全连接 七.两张表中都没有出现 ...

  4. MySQL逻辑架构、SQL加载执行顺序、七种JOIN模式图解

    逻辑架构   存储引擎 查看当前安装的mysql提供的存储引擎 查看当前mysql默认的存储引擎 MyISAM和InnoDB SQL加载执行顺序 sql书写顺序 mysql解析器执行的顺序  考点:m ...

  5. Mysql七种 JOIN 连接

    内连接 SELECT <select_list> FROM TableA A INNER JOIN TableB B ON A.Key = B.Key 左外连接 SELECT <se ...

  6. MySQL七种join理论

    1. 内连接 select * from A inner join B where A.key=B.key; 2. 左连接 select * from A left join B on A.key=B ...

  7. 七种join的书写规范

    在mysql中的两表进行连接时,总共有7种连接情况,具体可见下图 由图的从左到右的顺序 图1.左连接(left join):返回左表中的所有记录和右表中的连接字符字段相等的记录,若右表没有匹配值则补N ...

  8. MySQL 的七种日志总结

    文章转载自:https://mp.weixin.qq.com/s/ewv7HskHvH3O7kFyOmoqgw 一.MySQL 日志分类 日志类别 说明 备注 错误日志 错误日志记录了当MySQL启动 ...

  9. 1. 七种join的sql编写

    一.join图 二.sql演示 a.创建演示表及数据 SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ----------------------- ...

随机推荐

  1. 什么是服务端伪造(SSRF)

    什么是服务端伪造(SSRF) 原文:GitHub Pages and Single-Page Apps 译者:neal1991 welcome to star my articles-translat ...

  2. vue.js(11)--案例--关键字搜索列表

    关键字搜索品牌案例 (1)页面布局 <div class="app"> <div class="panel panel-primary"> ...

  3. mycat权威指南阅读笔记--序言1

    前言 mycat官方地址http://www.mycat.io/,mycat是关系数据库的中间件,也就是说它可以把后端的多个数据库,抽象成一个关系数据库. mycat能干啥 官方文档介绍,主要是用来做 ...

  4. 自定义线程池的名称(ThreadPoolExecutor)

    目的:有时候为了快速定位出现错误的位置,在采用线程池时我们需要自定义线程池的名称. 1.创建ThreadFactory(ThreadPoolExecutor默认采用的是DefaultThreadFac ...

  5. TP5+阿里云OSS上传文件第三节,实现淘宝上传商品图片

    **TP5+阿里云OSS上传文件第三节,实现淘宝上传商品图片首先我们来看看淘宝的功能和样式:** 之后看看制作完成的演示:(由于全部功能弄成GIF有点大,限制上传大小好像在1M之内,压缩之后也有1.9 ...

  6. Test 3.27 T1 立方体大作战

    Description ​ 一个叫做立方体大作战的游戏风靡整个 Byteotia.这个游戏的规则是相当复杂的,所以我们只介绍他的简单规则:给定玩家一个有 2n 个元素的栈,元素一个叠一个地放置.这些元 ...

  7. LeetCode--056--合并区间(java)

    给出一个区间的集合,请合并所有重叠的区间. 示例 1: 输入: [[1,3],[2,6],[8,10],[15,18]] 输出: [[1,6],[8,10],[15,18]] 解释: 区间 [1,3] ...

  8. linux运维、架构之路-linux定时任务

    1.基础优化之开机启动服务优化 使用awk拼接的方式 [root@cache01 ~]# chkconfig |egrep -v "crond|network|sshd|rsyslog|sy ...

  9. Flask学习 3 url_for的使用

    #!/usr/bin/env python # encoding: utf-8 """ @version: v1.0 @author: cxa @file: flask0 ...

  10. python3爬虫开发与实战预览版

    https://germey.gitbooks.io/python3webspider/content/1.2.3-ChromeDriver%E7%9A%84%E5%AE%89%E8%A3%85.ht ...