多表查询(连接查询)
简单的理解就是从多张数据表中查询数据。
demo:实现多表查询
select * from emp,dept where emp.detpno=dept.detpno;
多表查询的时候需要消除笛卡尔积,否则会出现重复的数据,使用where子句的过滤两张表中的含义相同的字段(例如:emp中部门编号,dept中的部门编号)。
那么以上的方法是真的消除了重复的数据吗?其实并没有消除,只是通过where子句把条件符合的数据显示出来的,重复的数据还是存在的。所以,当数据量比较大的时候不要使用多表查询,因为这样会产生很大的笛卡尔积,导致性能损耗。
别名的使用方式都是一样的
select * from emp e,dept d where e.detpno=d.detpno;
总结:
多表查询就是从多张表中查询数据
多表查询又叫连表查询
如果数据量比较大,不要使用多表查询,避免产生大量的笛卡尔积,从而导致性能损耗