博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【知识库】-数据库_MySQL 的七种 join
阅读量:5056 次
发布时间:2019-06-12

本文共 2123 字,大约阅读时间需要 7 分钟。

 

 

  作者:haifeisi

  文章出处: 

  

  创建数据库表'tbl_dept'和'tbl_emp'

 

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`.`tbl_dept`(`id`)) ENGINE=INNODB CHARSET=utf8;
View Code

 

 

  插入数据

 

/*插入数据*/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);
View Code

 

  'tbl_dept'表和'tbl_emp'表

          

 

 

一、内连接

  内连接文氏图

  

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

 

   

 

 

二、左外连接

  左外连接文氏图

  

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

 

  

 

 

三、右外连接

  右外连接文氏图

   

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

 

   

 

 

 四、左连接

   左连接文氏图

   

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

 

  

 

 

五、右连接

  右连接文氏图 

  

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

 

 

 

 

 六、全连接

   全连接文氏图

  • 执行的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语句以及执行的查询结果
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;

 

  

 

转载于:https://www.cnblogs.com/1138720556Gary/p/11196351.html

你可能感兴趣的文章
iOS 数组排序
查看>>
第三节
查看>>
PHP结合MYSQL记录结果分页呈现(比较实用)
查看>>
Mysql支持的数据类型
查看>>
openSuse beginner
查看>>
Codeforces 620E(线段树+dfs序+状态压缩)
查看>>
Windows7中双击py文件运行程序
查看>>
Market entry case
查看>>
bzoj1230 开关灯 线段树
查看>>
LinearLayout
查看>>
学习python:day1
查看>>
css3动画属性
查看>>
第九次团队作业-测试报告与用户使用手册
查看>>
Equal Sides Of An Array
查看>>
CentOS笔记-用户和用户组管理
查看>>
Mongodb 基本命令
查看>>
Qt中QTableView中加入Check列实现
查看>>
“富豪相亲大会”究竟迷失了什么?
查看>>
控制文件的备份与恢复
查看>>
返回代码hdu 2054 A==B?
查看>>