@boothsun
2018-02-18T18:03:42.000000Z
字数 1869
阅读 1265
MySQL
在这里我们先建立两张有外键关联的两张表:
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);
内连接Venn图
执行的SQL语句以及执行的查询结果:
左外连接文氏图:
执行的sql语句以及执行的查询结果:
select * from tbl_dept a left join tbl_emp b on a.id=b.deptId;
右外连接Venn图:
执行的sql语句以及执行的查询结果
select * from tbl_dept a right join tbl_emp b on a.id=b.deptId
左连接Venn图:
执行的SQL语句以及执行的查询结果
select * 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语句以及执行的查询结果:
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 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;