📋前言📋
💝博客:【无聊大侠hello word】💝
✍本文由在下【无聊大侠hello word】原创,首发于CSDN✍
连接查询
连接是将不同表的记录连到一起的最普遍的方法,通过连接查询可将多个表作为一个表进行处理。 连接查询分为内连接和外连接
连接查询分类
根据表的连接方式来划分,包括:
①内连接
等值连接
非等值连接
自连接
②外连接
左外连接(左连接)
右外连接(右连接)
③全连接
1.内连接
内连接也称为连接,它还可以被称为完全匹配连接 是从结果表中删除与其他被连接表中没有匹配上的所有行,所以内连接可能会丢失信息。
2. 外连接
外连接:
假设A和B进行连接,使用外连接的话,AB两张表中有一张是主表,一张表是副表,主要查询主表中的数据,捎带着查询副表,当副表中的数据没有和主表上的数据匹配上,副表自动模拟出null与之匹配。
特点:主表数据 无条件都查询出来
3. 创建测试表
电影表
CREATE TABLE `tb_movie` (
`movie_id` int(11) NOT NULL AUTO_INCREMENT,
`movie_name` varchar(255) DEFAULT NULL,
`author` varchar(255) DEFAULT NULL,
`type` int(255) DEFAULT NULL,
PRIMARY KEY (`movie_id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
类型表
CREATE TABLE `tb_type` (
`type_id` int(11) NOT NULL AUTO_INCREMENT,
`type_name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`type_id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
4.内连接测试
语法:(inner 可以省略)
…
A
inner join
B
on
连接条件
where
…
SELECT * FROM tb_movie m INNER JOIN tb_type tm ON m.type = tm.type_name = "动作"
5.外连接测试
外连接(左外连接/左连接)
//outer可以省略
select
a.ename as ‘员工名’,b.ename as ‘领导名’
from
emp a
left outer join
emp b
on
a.mgr = b.empno;