在表的连接查询方面有一种现象被称为:笛卡尔积现象。(笛卡尔乘积现象)

    1. 当两张表进行连接查询的时候,没有任何条件进行限制时会发生什么呢
    2. 案例:找出每一个员工的部门名称,要求显示员工名和部门名。
    3. emp
    4. +--------+--------+
    5. | ename | deptno |
    6. +--------+--------+
    7. | SMITH | 20 |
    8. | ALLEN | 30 |
    9. | WARD | 30 |
    10. | JONES | 20 |
    11. | MARTIN | 30 |
    12. | BLAKE | 30 |
    13. | CLARK | 10 |
    14. | SCOTT | 20 |
    15. | KING | 10 |
    16. | TURNER | 30 |
    17. | ADAMS | 20 |
    18. | JAMES | 30 |
    19. | FORD | 20 |
    20. | MILLER | 10 |
    21. +--------+--------+
    22. dept
    23. +--------+------------+----------+
    24. | DEPTNO | DNAME | LOC |
    25. +--------+------------+----------+
    26. | 10 | ACCOUNTING | NEW YORK |
    27. | 20 | RESEARCH | DALLAS |
    28. | 30 | SALES | CHICAGO |
    29. | 40 | OPERATIONS | BOSTON |
    30. +--------+------------+----------+
    31. select ename,dname from emp,dept;
    32. +--------+------------+
    33. | ename | dname |
    34. +--------+------------+
    35. | SMITH | ACCOUNTING |
    36. | SMITH | RESEARCH |
    37. | SMITH | SALES |
    38. | SMITH | OPERATIONS |
    39. | ALLEN | ACCOUNTING |
    40. | ALLEN | RESEARCH |
    41. | ALLEN | SALES |
    42. | ALLEN | OPERATIONS |
    43. ............
    44. 56 rows in set (0.00 sec)
    45. 14 * 4 = 56

    笛卡尔积现象:当两张表进行连接查询的时候,没有任何条件进行限制,最终的查询结果条数是两张表记录条数的乘积。(数学现象)

    关于表的别名:
    select e.ename,d.dname from emp e,dept d;
    表的别名有什么好处?
    第一:执行效率高。
    第二:可读性好。

    1. 怎么避免笛卡尔积现象?
    2. 当然是加条件进行过滤。
    3. 案例:找出每一个员工的部门名称,要求显示员工名和部门名。
    4. select
    5. e.ename,d.dname
    6. from
    7. emp e , dept d
    8. where
    9. e.deptno = d.deptno; //SQL92,以后不用。
    10. +--------+------------+
    11. | ename | dname |
    12. +--------+------------+
    13. | CLARK | ACCOUNTING |
    14. | KING | ACCOUNTING |
    15. | MILLER | ACCOUNTING |
    16. | SMITH | RESEARCH |
    17. | JONES | RESEARCH |
    18. | SCOTT | RESEARCH |
    19. | ADAMS | RESEARCH |
    20. | FORD | RESEARCH |
    21. | ALLEN | SALES |
    22. | WARD | SALES |
    23. | MARTIN | SALES |
    24. | BLAKE | SALES |
    25. | TURNER | SALES |
    26. | JAMES | SALES |
    27. +--------+------------+
    28. 思考:避免了笛卡尔积现象,减少记录的匹配次数了吗?
    29. 没有,次数还是56次。只不过显示的是有效记录。
    30. 加条件只是为了避免笛卡尔积现象,只是为了查询出有效的组合记录。
    31. 匹配的次数一次都没有少,还是56

    注意: 通过笛卡尔积现象得出,表的连接此数越多效率越低,尽量减少不得连接次数