建表

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

  1. CREATE DATABASE db0206;
  2. USE db0206;
  3. CREATE TABLE `db0206`.`tbl_dept`(
  4. `id` INT(11) NOT NULL AUTO_INCREMENT,
  5. `deptName` VARCHAR(30),
  6. `locAdd` VARCHAR(40),
  7. PRIMARY KEY (`id`)
  8. ) ENGINE=INNODB CHARSET=utf8;
  9. CREATE TABLE `db0206`.`tbl_emp`(
  10. `id` INT(11) NOT NULL AUTO_INCREMENT,
  11. `name` VARCHAR(20),
  12. `deptId` INT(11),
  13. PRIMARY KEY (`id`),
  14. FOREIGN KEY (`deptId`) REFERENCES `db0206`.`tb_dept`(`id`)
  15. ) ENGINE=INNODB CHARSET=utf8;
  16. /*插入数据*/
  17. INSERT INTO tbl_dept(deptName,locAdd) VALUES('RD',11);
  18. INSERT INTO tbl_dept(deptName,locAdd) VALUES('HR',12);
  19. INSERT INTO tbl_dept(deptName,locAdd) VALUES('MK',13);
  20. INSERT INTO tbl_dept(deptName,locAdd) VALUES('MIS',14);
  21. INSERT INTO tbl_dept(deptName,locAdd) VALUES('FD',15);
  22. INSERT INTO tbl_emp(NAME,deptId) VALUES('z3',1);
  23. INSERT INTO tbl_emp(NAME,deptId) VALUES('z4',1);
  24. INSERT INTO tbl_emp(NAME,deptId) VALUES('z5',1);
  25. INSERT INTO tbl_emp(NAME,deptId) VALUES('w5',2);
  26. INSERT INTO tbl_emp(NAME,deptId) VALUES('w6',2);
  27. INSERT INTO tbl_emp(NAME,deptId) VALUES('s7',3);
  28. INSERT INTO tbl_emp(NAME,deptId) VALUES('s8',4);

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

内连接

内连接文氏图

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

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

左外连接

左外连接文氏图

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

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

右外连接

右外连接文氏图

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

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

左连接

左连接文氏图

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

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

右连接

右连接文氏图

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

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

全连接

全连接文氏图

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

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

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

文氏图

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

  • 执行的sql语句
  1. 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. int,long,long long类型的范围

    [内置类型] int      -2147483648-2147483647  //现在编译器的int型是32位的,以前为16位的范围是-32768~32767 unsigned  int   0-4 ...

  2. 软工实践Beta冲刺(4/7)

    队名:起床一起肝活队 组长博客:博客链接 作业博客:班级博客本次作业的链接 组员情况 组员1(队长):白晨曦 过去两天完成了哪些任务 描述: 1.界面的修改与完善 展示GitHub当日代码/文档签入记 ...

  3. Mybatis学习系列(二)Mapper映射文件

    Mapper映射文件,作用是用来配置SQL映射语句,根据不同的SQL语句性质,使用不同的标签,mapper文件中常用的标签有<iselect>.<insert>.<upd ...

  4. 我的python计划

    一直想学习一种脚本语言.现在主流的脚本语言,比较先接触的是python 刚开始了解了一下python,感觉挺适合自己的感觉,学习了一段时间,之中感觉,就好象C++一样,把面向对象和面向过程编程结合了起 ...

  5. JAVA高并发处理------多线程

    线程安全概念:当多个线程访问某一个类(对象或方法)时,这个对象始终都能表现出正确的行为,那么这个类(对象或方法)就是线程安全的. 分析:当多个线程访问myThread的run方法时,以排队的方式进行处 ...

  6. hibernate笔记(二)

    目标: 关联映射(hibernate映射) 1. 集合映射 2. 一对多与多对一映射 (重点) 3. 多对多映射 4. inverse/lazy/cascade 1. 集合映射 开发流程: 需求分析/ ...

  7. 【题解】JLOI2015战争调度

    搜索+状压+DP. 注意到一个性质:考虑一棵以x为根的子树,在x到原树的根的路径上的点如果都已经确定了方案,那么x的左右儿子的决策就彼此独立,互不影响了.所以我们考虑状压一条路径上每一层节点的状态,求 ...

  8. [洛谷P1430]序列取数

    题目大意:给定一个序列$s$,每个人每轮可以从两端(任选一端)取任意个数的整数,不能不取.在两个人都足够聪明的情况下,求先手的最大得分. 题解:设$f_{i,j}$表示剩下$[i,j]$,先手的最大得 ...

  9. 停课day5

    一转眼,已经停课五天了. 高二大佬们已经都走了,在机房里面呆着,有时感觉很孤寂. 但是为了能学好竞赛,这些都是在所不惜的. 好像多打打比赛啊,可是cf要FQ,洛谷之类的比赛还不勤. 哎,先去学一发SP ...

  10. ios10 safari浏览器 在touchmove 里面写e.preventDefault(); 不起作用 的解决方法

    最近做手机端项目遇到一个问题,就是在ios10系统里面  safari浏览器 在touchmove 里面写e.preventDefault();不起作用 更种google 还是没有找到解决方法 最后找 ...