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

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

迪卡尔积效应

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

跟小博老师一起学习数据库 ——多表查询_第1张图片

消除迪卡尔积效应

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

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

跟小博老师一起学习数据库 ——多表查询_第2张图片

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

再看个三张表的多表查询

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

跟小博老师一起学习数据库 ——多表查询_第3张图片

综合练习

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

跟小博老师一起学习数据库 ——多表查询_第4张图片

思考

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

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

你可能感兴趣的:(跟小博老师一起学习数据库 ——多表查询)