当两张表进行连接查询的时候,没有任何条件进行限制,最终的查询结果条数是两张表记录条数的乘积。
笛卡尔现象形成原因
- 连接条件被省略
- 连接条件无效
- 第一个表的所有记录连接到第二个表的所有记录
➢为了避免笛卡尔结果我们总是在 WHERE 子句中使用有效连接
设A,B为集合,用A中元素为第一元素,B中元素为第二元素构成的有序对,所有这样的有序对组成的集合 叫做A与B的笛卡尔积,记作AxB.
连接查询的分类
内链接:
- 等值连接
- 非等值连接
- 自连接
外链接:
- 左外连接(左连接)
- 右外连接(右连接)
全链接:这个很少用
多表连接时使用别名的优势
第一: 执行效率高; 以上sql语句为了,如果不使用别名,查询enme字段,它先会去emp找,再去dept表中找。
有时候,两张表中可能会存在字段名一样的情况。
第二:可读性好;
怎么避免笛卡尔积现象?
当然是加条件进行过滤。
思考:避免了笛卡尔积现象,会减少记录的匹配次数吗?
答案是:不会。 以以上查询案例为例,查询次数还是56次。只不过显示的是有效记录。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END