多表查询与内连接,外连接

Posted hellosiyu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多表查询与内连接,外连接相关的知识,希望对你有一定的参考价值。

1 多表查询:创建一个部门表和员工表并插入数据

代码块
use company;

#创建部门表
CREATE TABLE department (
id int PRIMARY key  auto_increment,
dep_name varchar(10) not null
);

#创建员工表
CREATE TABLE employee(
id int PRIMARY key auto_increment,
emp_name varchar(10) not null,
dep_id int
-- CONSTRAINT dep_id_fk  FOREIGN key (dep_id) REFERENCES company(id) on DELETE CASCADE on UPDATE CASCADE
#上面的外键约束没有也可以,外键约束不影响表与表之间关联,影响的是表插入数据的约束
);

#向部门表中插入数据
insert into  department(dep_name) VALUES ('网盟营销'),('大数据中心')

#向员工表中插入数据
insert into employee(emp_name,dep_id) VALUES('wangsiyu',1),('alex',2)

查询员工的ID,姓名,部门的名称(隐式内连接):

代码块
select employee.id,emp_name,dep_name from employee,department WHERE department.id=employee.dep_id;
注意:对于两个表都同名的字段,应该在查询该字段的前面加上对应的表,否则电脑不知道你这个字段是哪个表的

显式内连接: 只连接匹配的行

select * from employee inner join department on employee.dep_id=department.id;

左连接 显示左表的全部记录

select * from employee left join department on employee.dep_id=department.id;

右连接:显示右表的全部记录

select * from employee right join department on employee.dep_id=department.id;

全连接:显示两个表的全部记录,没有对应的就用空表示

select * from employee full join department on employee.dep_id=department.id;

技术图片

技术图片

以上是关于多表查询与内连接,外连接的主要内容,如果未能解决你的问题,请参考以下文章

MySQL连接查询 内连接和外连接的区别

MySQL多表连接查询 内连接 外连接 子查询

MySQL数据库多表查询

MySQL 基础 -- 多表关系(一对一1对多(多对一)多对多)多表查询(内连接外连接自连接子查询(嵌套查询)联合查询 union)笛卡儿积

MySQL数据库多表查询

oracle多表查询之内连接,外连接语句总结