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——数据库的基本查询练习的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 复合查询

MySQL 复合查询

oracle习题-emp表查询练习

MySQL从青铜到王者第六篇:MySQL复合查询

sql 查询语句的练习

sql 查询语句的练习2