MySQL——数据库的基本查询练习
Posted 努力学习的少年
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL——数据库的基本查询练习相关的知识,希望对你有一定的参考价值。
- 💂 个人主页:努力学习的少年
- 🤟 版权: 本文由【努力学习的少年】原创、在CSDN首发、需要转载请联系博主
- 💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦
基本查询
基本查询只在一张数据表中进行查询,接下来的题目都会在下面这张表进行查询。
例1:
查询工资高于500或岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为大写的J
”高于500或岗位为MANAGER“的sql语句是:“ sal>500 or job='MANAGER' ”,
“ 同时还要满足它们的姓名首字母为大写的J”的sql语句是:" and ename like 'J%' ",
所以整个的筛选条件为:where (sal>500 or job='MANAGER') and ename like 'J%'
整个语句就是:select * from EMP where (sal>500 or job='MANAGER') and ename like 'J%';
在sql语句中,where是用来筛选条件,”条件中的或“用 or 来表示。”条件中的同时“用 and来表示。
查询结果:
例2:
按照部门号升序而雇员的工资降序排序
select * from EMP order by deptno, sal desc;
order by 默认是升序,如果在字段名后面加上desc,则显示字段的数据会降序排列。
例三:
使用年薪进行降序排序
select ename, sal*12+ifnull(comm,0) as '年薪' from EMP order by 年薪 desc;
年薪是每月薪水+奖金,薪水是sal,奖金是comm,因为有些员工的奖金为NULL,所以需要私有ifnull将NULL转化为0,然后再order by将年薪降序排列。
例4:
显示工资最高的员工的名字和工作岗位。
解析:
选出最高工资:(select max(sal) from emp);
然后将筛选最高工资作为条件筛选出员工:
select ename, job from emp where sal = (select max(sal) from emp);
max(sal)是筛选sal字段中数字最高的人。
例5:
显示工资高于平均工资的员工信息
筛选出表中的平均工资:select avg(sal) from emp
然后将筛选出来的平均工资作为条件筛选出员工:
select ename, sal from emp where sal>(select avg(sal) from emp);
例6:
显示每个部门的平均工资和最高工资。
解析:
由于要求每个部门的平均工资和最高工资,所以就需要对部门进行分组查询。
mysql使用group by来进行分组查询,分组查询将指定的字段的值相同为一组。
group by deptno: 按照部门号来进行查询。
select deptno,avg(sal),max(sal) from emp group by deptno;
例7:
显示平均工资低于2000的部门号和它的平均工资
先按照部门号进行分组查询,查询每个部门平均工资,再根据每个部门的平均工资筛选出小于2000元的部门。
select deptno,avg(sal) from emp group by deptno having avg(sal)<2000;
例子8:
显示每种岗位的雇员总数,平均工资
以上是关于MySQL——数据库的基本查询练习的主要内容,如果未能解决你的问题,请参考以下文章