笛卡尔积现象
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语法)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!