其他分享
首页 > 其他分享> > 笛卡尔积现象

笛卡尔积现象

作者:互联网

2.3、当两张表进行连接查询时,没有任何条件的限制会发生什么现象?

  案例:查询每个员工所在部门名称?

    select * from emp;

    select ename,dname from emp,dept;

  当两张表进行连接查询,没有任何条件限制时,最终查询结果条数,是两张表条数的乘积

2.4、怎么避免笛卡尔积现象?

  连接时加条件,满足这个条件的记录筛选出来

  select ename,dname from emp,dept where emp.deptno = dept.deptno;

  注意:最终查询的结果条数是14,匹配过程中,匹配的次数减少了吗? 次数没减少还是56次,只不过有条件了

    通过笛卡尔积现象,表的连接次数越多效率越低,应减少表的连接次数

  select emp.ename,dept.dname from emp,dept where emp.deptno = dep.deptno; //这样效率高

  //再起个别名

  select e.ename,d.dname from emp e,dept d where e.deptno = d.deptno;//这样起别名效率更高(重要)(SQL92语法)

  

标签:ename,笛卡尔,dname,dept,现象,emp,deptno,select
来源: https://www.cnblogs.com/doremi429/p/15832656.html