跟小博老师一起学习数据库 ——多表查询

多表查询技巧
本文介绍了如何在数据库查询中合理地进行多表连接,避免迪卡尔积效应,确保数据的有效关联。通过具体实例展示了如何利用关联字段减少不必要的数据组合,提高查询效率。

为了保证数据有效、合理的保存,往往把数据分散在不同表中,通过建立表与表的关系保证数据间的关联性。所谓多表查询就是一次查询从多张表中同时取数据,加上有效过滤条件获取所需数据。

006zipb5zy7acopIAUN81&690

迪卡尔积效应

所谓迪卡尔积是指参与查询的各张表中记录无条件相互组合,例如从二张表查询(EMP表12条记录,DEPT表4条记录)数据,最终会产生12*4条记录。在生产中要使用合理的条件消除此效应,N张表参与查询至少要N-1个过滤条件。

006zipb5zy7acoqQACVfd&690 

消除迪卡尔积效应

在建表应该设计好表与表之间的关系并指定好关联的字段,以便后续的查询。EMP表中deptno列与DEPT表的deptno相对应,在同时查询这二张表时,就好使用它们消除迪卡尔积效应。

例:查询员工信息和他所在的部门名称

006zipb5zy7acoryLcU7c&690 

我们只增加了一个过滤条件就迪卡尔积效应,准确查询出了员工所在的部门信息,查询出来的记录也不再是12*4行了。

再看个三张表的多表查询

例:查询员工的基本信息、部门名称、工资等级

006zipb5zy7acosofqJb5&690 

综合练习

查询除20部门以外、且工资等级大于2级的员工信息和部门名称

006zipb5zy7acot9x8M2c&690 

思考

查询员工的基本信息和他的直接上级领导姓名。(提示:MGR列是员工上级领导的编号)

今天就聊到这里,有问题给小傅老师留言吧:-)

转载于:https://my.oschina.net/u/2971691/blog/876438

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值