连接(Join):SQL语句采用JOIN的目的是关联两张及两张以上的表。
连接的使用方式:表1 Join 表2 On 关联条件
1 左连接(Left Join)
左连接(Left Join):多表拼接时,以左边的表为基准,右边未匹配的值会显示为空(Null/None)。
案例:
select *
from employees a left join salaries b
on a.emp_no=b.emp_no
2 右连接(Right Join)
右连接(Right Join):多表拼接时,以右边的表为基准,左边未匹配的值会显示未空(Null)。
select *
from employees a right join salaries b
on a.emp_no=b.emp_no
and to_date=‘9999-01-01’
3 内连接(Inner Join)
内连接(Inner Join):多表拼接时,只显示都匹配上的值,不会出现为空的现象。
select *
from employees a inner join salaries b
on a.emp_no=b.emp_no
and to_date=‘9999-01-01’
4 案例说明
表详情如下图所示。
原SQL测试题目为:查找在职员工自入职以来的薪水涨幅情况。
题目解析:该考点有两个,第一个是多表的关联,第二个是简单运算
5 补充说明
除了使用JOIN关联多表,还可以通过多表查询和条件设定来关联。
SELECT *
FROM employees a, salaries b
where a.emp_no=b.emp_no
小结:个人觉得左连接和右连接的区别不大,主要在于个人的使用习惯。使用Join关联表和from后面多表关联的区别主要在于运行效率和存储空间,join的运行效率会更快些。