MySQL连接查询详解及案例【目录】
1:什么是连接查询?
在实际开发中,大部分的情况都不是从单表中查询数据的,一般都是多张表联合查询取出最终的结果。
在实际开发中,一般一个业务都会对应多张表,比如:学生和班级,起码两张表。
2:连接查询的分类:根据表的连接方式来划分,包括:
内连接:
等值连接
非等值连接
自连接
外连接:
左外连接(左连接)
右外连接(右连接)
全连接(很少用!)
3:在表连接查询方面有一种现象被称为:笛卡尔积现象。(笛卡尔乘积现象)
笛卡尔积现象:当两张表进行连接查询的时候,没有任何条件进行限制,
最终的查询结果条数是两张表记录条数的乘积。
怎么避免笛卡尔积现象?当然是加条件过滤。
思考:避免了笛卡尔积现象,会减少记录的匹配次数吗?
不会,次数还是两张表的记录条数的乘积,只不过显示的是有效记录。
4:内连接-等值连接:最大特点:条件是等量关系。
找出每一个员工的部门名称,要求显示员工名和部门名。
#SQL92:以后不用
Select
e.ename,d.dname
from
Emp e,dept d
where
e.deptno=d.deptno;
#SQL99:常用
Select
e.ename,d.dname
from
emp e
inner join
dept d
on
(e.deptno=d.deptno