MYSQL数据库的连表操作_mysql连表查询原理

MYSQL数据库的连表操作_mysql连表查询原理

技术教程gslnedu2025-02-09 12:11:2610A+A-

在mysql中,有四种连表操作:

  • 内连接
  • 左连接
  • 右连接
  • 全连接

首先准备两个表的数据,员工表和部门表,这里的数据主要是做测试,所以两个表并没有搞外键关联

员工表(employee):

id

name

dep_id

1

张三

300

2

李四

300

3

王五

301

4

赵起

302

5

李九

303

6

何八

305

部门表(dep):

id

name

300

技术部

301

销售部

303

行政部

304

采购部

CREATE TABLE emp (id int primary  key auto_increment,
                  name varchar(16) NOT NULL,
  								dep_id int )ENGINE=INNODB DEFAULT CHARSET='UTF8';
CREATE TABLE dep (id int primary  key auto_increment,
                  name varchar(16) NOT NULL )ENGINE=INNODB DEFAULT CHARSET='UTF8';
                   

插入数据:

INSERT INTO emp(name,dep_id) VALUES ('张三',300),('李四',300),('王五',301),('赵起',302),('李九',303),('何八',305);
INSERT INTO dep(id,name) VALUES (300,'技术部'),(301,'销售部'),(302,'行政部'),(304,'采购部'),(306,'人事部');

内联接(INNER JOIN)

只查询两个表都存在的数据,不存在的数据不显示

SELECT * FROM emp INNER JOIN dep ON emp.dep_id = dep.id;

左连接查询(LEFT JOIN)

左表对应的数据全部显示,与右边没有对应的数据应Null显示

SELECT  * FROM emp LEFT JOIN dep ON emp.dep_id = dep.id;

右连接查询(RIGHT JOIN)

右表数据全部显示,与左表没有对应的数据NULL 显示;

SELECT * FROM emp RIGHT JOIN dep ON emp.dep_id = dep.id;

全连接(UNION)

左表和右边全部显示,没有对应的null显示

SELECT  * FROM emp LEFT JOIN dep ON emp.dep_id = dep.id
UNION
SELECT  * FROM emp RIGHT JOIN dep ON emp.dep_id = dep.id;

下面是笛卡尔积图:

点击这里复制本文地址 以上内容由朽木教程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

朽木教程网 © All Rights Reserved.  蜀ICP备2024111239号-8