1、内连接
2、外连接
3、全连交叉查询
连接查询:根据两个或多个表之间的关系,从这些表中查询数据
目的:实现多表查询
分类:内连接、外连接、全连接、交叉连接
内连接:inner join
使用比较运算符 = < > >= <= <> 进行表间的比较,查询与条件相匹配的数据
其中利用等号进行比较的成为等值连接
内连接又分为显示连接和隐式连接
显示连接:inner join
隐式连接:=
--显示连接
select userid,username,age,u.deptid,deptname
from userinfos u
inner join deptinfos d on d.deptid=u.deptid
where age>25
--隐式连接
select userid,username,age,u.deptid,deptname
from userinfos u,deptinfos d
where age>25 and d.deptid=u.deptid
外连接
外连接的分类:左外连接、右外连接、全外连接 简称:左连接、右连接、全连接
--左连接
select * from userinfos u --左表
left join deptinfos d --右表
on u.deptid =d.deptid
--结果:显示左表的所有行,右表行数与左表相同,没有匹配上的显示为null
--右连接
select * from userinfos u --左表
right join deptinfos d --右表
on u.deptid =d.deptid
--结果:显示右表的所有行,左表行数与右表相同,没有匹配上的显示为null
--全连接
select * from userinfos u --左表
full join deptinfos d --右表
on u.deptid =d.deptid
--结果:左表和右表所有的数据都会显示出来,
--如果在另一个表中匹配不上就显示null,左右都有可能出现null
--交叉连接 笛卡尔积
select * from userinfos u --左表
cross join deptinfos d --右表
--不能带on
select * from userinfos u --左表
cross join deptinfos d --右表
where u.deptid=d.deptid
--带条件则等价于inner join