欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > 数据库 >内容正文

数据库

mysql 查询部门中男女人数,工资最高,等

发布时间:2023/12/20 数据库 41 豆豆
生活随笔 收集整理的这篇文章主要介绍了 mysql 查询部门中男女人数,工资最高,等 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

所用数据库的两个表 部门表和用户表 表结构如下

部门表(dept)

用户表(USERS)

1 对单个表进行操作

1.1查询(升序,降序 )

select * from 表名 order by 列名 DESC(降序)/AESC(升序可省)
1.按工资高低排序

SELECT * FROM USERS ORDER BY SALARY (升序) SELECT * FROM USERS ORDER BY SALARY DESC (降序)

结果如图所示(降序)

1.2 查询(查询最大值,第二大值)

1 max函数
2 limit 限制

  • 查出工资最高的员工的信息 (这里没有考虑有重复值的情况,如果有重复值只显示其中一条,要考虑重复值可参考查找每个部门工资最高的员工信息)
  • SELECT * FROM USERS WHERE SALARY =(select max(SALARY) from USERS) SELECT * FROM USERS ORDER BY SALARY DESC limit 1

    查询出每个部门工资最高的员工信息

    SELECT USERNAME ,max(SALARY) from users GROUP BY dept

    3.查出工资第二高的员工的信息

    SELECT * FROM USERS WHERE SALARY not in (select max(SALARY) from USERS) ORDER BY SALARY DESC limit 1 SELECT * FROM USERS ORDER BY SALARY DESC limit 2,1

    4.查出工资前五的员工的信息
    limit n,m 从第n行开始的m行

    SELECT * FROM USERS ORDER BY SALARY DESC limit 1,5

    5.按 部门和工资排序
    部门升序、工资降序

    SELECT * FROM USERS ORDER BY dept ,SALARY DESC

    2、对两个表的操作(连接)

    INNER JOIN ,LEFT JOIN, RIGHT JOIN

    select a.* ,b.* from 表1 a INNER JOIN 表2 b on a.ID = b.deptID

  • 查询出全部用户并显示其所在部门名称
  • SELECT a.DEPT_NAME as 部门,b.USERNAME AS 姓名 from USERS b INNER JOIN DEPT a on a.ID = b.dept
  • 将用户部门名称为"档案室"的性别为"女"员工调入"总裁办"
    update
  • UPDATE USERS set dept = 4 where dept = 1 and SEX = '女'

    3.查询出全部部门人员超过1人的部门并显示该部门人数

    统计部门人数

    SELECT d.DEPT_NAME as 部门,count(*) as 人数 from users u INNER JOIN DEPT d ON d.ID = u.DEPT GROUP BY u.DEPT

    显示其中部门人数大于2的部门
    having :HAVING相当于条件筛选,但它与WHERE筛选不同,HAVING是对于GROUP BY对象进行筛选

    SELECT d.DEPT_NAME as 部门,count(*) as 人数 from users u INNER JOIN DEPT d ON d.ID = u.DEPT GROUP BY u.DEPT having count(*)>=2

    4.统计各部门男员工和女员工人数,显示结果如下

    SELECT d.DEPT_NAME as 部门, count( case when u.SEX = '男' then 1 end) as, count( case when u.SEX = '女' then 1 end) asfrom users u INNER JOIN DEPT d ON d.ID = u.DEPT GROUP BY u.DEPT

    3、UNION 和UNION ALL 的区别

    UNION 操作符用于合并两个或多个 SELECT 语句的结果集。

    请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。

    //UNION去重 SELECT column_name(s) FROM table_name1 UNION SELECT column_name(s) FROM table_name2//UNION ALL 不去重SELECT column_name(s) FROM table_name1 UNION ALL SELECT column_name(s) FROM table_name2

    总结

    以上是生活随笔为你收集整理的mysql 查询部门中男女人数,工资最高,等的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。