ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MySQL_练习Day03

2021-02-23 19:58:54  阅读:185  来源: 互联网

标签:Day03 练习 查询 薪资 姓名 表中 MySQL 员工 连接


一.连接查询
继续使用Day_02的数据。
在这里插入图片描述
例如,查询部门和部门对应的员工信息。下面的这种查询中存在大量错误的数据,一般情况下不会直接使用这种查询。
在这里插入图片描述
笛卡尔积查询:查询两张表,其中一张表有m条记录,另一张表有n条记录,查询结果是m*n条。虽然笛卡尔积查询中包含大量的错误数据,但我们可以通过where子句将错误删除,保留下来的就是正确的数据。
在这里插入图片描述
也可以用以下查询语句代替。
在这里插入图片描述
二.左外连接查询
如果要查询其中一张表的所有记录,那么另一张表只显示对应的记录,没有则显示null。可以将左边表中的所有记录都查询出来,右边的表只显示和左边对应的数据,如果左边表中的某些记录在右边没有对应的数据,那么右边显示为null即可。
在这里插入图片描述
三.右外连接查询
可以将右边表中的所有记录都查询出来,左边表只显示和右边相对应的数据,如果右边表中的某些记录在左边没有对应的数据,那么显示为null。
在这里插入图片描述
四.全外连接
如果想将两张表中的所有数据都查询出来,即同时实现左外连接和右外连接的功能,可以使用全外连接查询,但是MySQL并不支持全外连接查询。因此我们可以使用union关键字将左外连接的结果和右外连接的结果合并在一起,并且union关键字会默认将两个查询中重复的记录去除,即可实现效果。但是有两个前提:
<1>两条SQL语句的查询结果的列数必须一致。
<2>两条SQL语句的查询结果的列名和顺序也必须一致。
在这里插入图片描述
五.子查询练习
准备新的数据库db40。
在这里插入图片描述
例1,列出薪资比王海涛的薪资还要高的所有员工,显示姓名与薪资。
<1>我们需要先求出员工王海涛的工资。
在这里插入图片描述
<2>将上述条件作为子条件,进行下一步查询。子查询并不需要加分号。
在这里插入图片描述
例2,列出和"刘沛霞"从事相同职位的所有员工,显示姓名和职位。
<1>先得知刘沛霞的职位。
在这里插入图片描述
<2>将上述条件作为子条件,进行下一步查询。
在这里插入图片描述
六.多表查询练习
例1,列出在"培优部"任职的员工,假定不知道"培优部"的部门编号,显示部门名称,员工姓名。我们需要将两张表连接起来。
在这里插入图片描述
例2,列出所有员工以及其上级,显示员工姓名,上级编号和上级姓名。
可以发现员工姓名和上级姓名有重叠的部分,在已知的emp表中仅仅显示了员工的姓名和上级的编号,同时员工也有可能是其余员工的上级。我们需要将表格进行重命名,用于区分员工表和上级表。将同样的一张emp表格,命名两次,分别为e1,e2。表的内容都相同。
在这里插入图片描述
例2,列出最低薪资大于1500的各种职位,显示职位和该职位的最低薪资。
需要用到筛选关键词having。这里提到where 和 having的区别:
<1>where是在分组之前对数据进行筛选过滤,而having是在分组之后。
<2>where子句中不能使用多行数据,也不能使用列别名,但是可以使用表别名。而having中可以试试用多行函数,也可以使用列别名和表别名。
在这里插入图片描述
例3,列出在每个部门就职的员工数量,平均工资。显示部门编号,员工数量和平均薪资。
在这里插入图片描述
例4,列出受雇日期遭遇直接上级的所有员工,显示员工编号,员工姓名和部门名称。
在这里插入图片描述
例5,查询员工表中薪资最高的员工信息。
在这里插入图片描述

标签:Day03,练习,查询,薪资,姓名,表中,MySQL,员工,连接
来源: https://blog.csdn.net/weixin_41858806/article/details/113991321

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有