连接查询(自连接、内连接和外连接)-MySQL
1.前提摘要
1.1关于表格
1.2详情
1.3什么是连接查询:
若一个连接查询设计两个表以上则称之为连接查询。
另外要注意SQL92和SQL99的语法差异,同样是查询。
SQL92:select * from A,B where 条件;
SQL99:select * from A join B on 条件;
2.自连接
自连接就是自己连接自己。
As:
select * from emp e1 join emp e2 where e1.deptno=e2.deptno;
3.内连接(inner join)
3.1等值连接与非等值连接
Where子句中用来连接两个表的条件被称为连接条件或连接谓词
当连接运算符为“=”时,被称为等值连接,使用其他的连接运算符则被称为非等值连接。
例子:
等值连接
3.2自然连接
自然连接是在等值连接的基础上把目标字段中的重复的属性列去掉。
例子:
自然连接还具体分为自然外连接和自然内连接。这个我不太了解 我就不说了。
4.外连接(outer join)
4.1左外连接(left outer join)
4.2右外连接(right outer join)
5.内外连接的差异
内连接的两个表是平等关系,外连接的两个表具有主次关系。比如表dept中的dname是从ACCOUNTING开始,当我们像4.2中进行右连接,就会取出dept中的dname所有,然后进行表连接符合条件的则展示,不符合条件的则显示null。在内连接中不符合条件的则会直接不展示。
菜鸟一个,有错误的地方还请指教。