限定、模糊、排序、多表查询(3)

多表查询(连接查询)

简单的理解就是从多张数据表中查询数据。

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;

 

总结:

多表查询就是从多张表中查询数据

多表查询又叫连表查询

如果数据量比较大,不要使用多表查询,避免产生大量的笛卡尔积,从而导致性能损耗

 

 

posted @ 2019-11-23 13:14  关键的疯狂  阅读(221)  评论(0编辑  收藏  举报