• 数据库(二)


    分页查询 limit
    格式: limit 跳过的条数,请求的条数(每页的条数)
     跳过的条数=(请求的页数-1)*每页的条数
     举例:
       ○ 第1页的5条数据                  limit  0,5
       ○ 第2页的5条数据                  limit  5,5
       ○ 第3页的5条数据                  limit  10,5
       ○ 第4页的10条数据                limit   30,10
       ○ 第8页的7条数据                 limit  49,7
       ○ 第3页的9条数据                  limit 18,9
    - 查询id,姓名,工资和工作,按照工资升序排序 请求第1页的5条数据

       select id,name,sal,job from emp order by sal limit 0,5;

    - 查询所有员工的姓名和工资,按照工资升序排序,请求第2页的5条数据

       select name,sal from emp order by sal  limit 5,5;

    - 查询工资最高的员工信息  

     select * from emp order by sal desc limit 0,1;

    - 按照入职日期排序 查询第2页的3条数据

       select * from emp order by hiredate limit 3,3;

    - 按照工资升序排序查询第3页的2条数据      

       select * from emp order by sal limit 4,2;

    别名

    select name as '姓名' from emp;

    select name '姓名' from emp;

    select name 姓名 from emp;

    综合练习题

    1. 查询员工表中 3 号部门工资高于 1500 的员工信息

       select * from emp where dept_id=3 and sal>1500;

    2. 查询 2 号部门员工或者没有领导的员工信息

       select * from emp where dept_id=2 or manager is null;

    3. 查询有领导的员工姓名,工资按照工资降序排序

       select name,sal from emp where manager is not null order by sal desc;

    4. 查询 2 号和 3 号部门的员工姓名和入职日期 hiredate 按照入职日期降序排序

       select name,hiredate from emp where dept_id in(2,3) order by hiredate desc;

    5. 查询名字中包含僧和包含精的员工姓名

       select name from emp where name like "%僧%" or name like "%精%";

    6. 查询工资高于 2000 的工作有哪几种? 

       select distinct job from emp where sal>2000;

    7. 查询工资升序第 4 页的 2 条数据

       select * from emp order by sal limit 6,2;

    聚合函数

    - 可以对查询的多条数据进行统计查询, 统计方式包括:求平均值,求最大值,求最小值,求和,计数

    1. 平均值avg(字段名)

       - 查询1号部门的平均工资 

      select avg(sal) from emp where dept_id=1;

    2. 最大值max(字段名)

       - 查询2号部门的最高工资

         select max(sal) from emp where dept_id=2;

    3. 最小值min(字段名)

       - 查询2号部门的最低工资

         select min(sal) from emp where dept_id=2;

    4. 求和sum(字段名)

       - 查询3号部门的工资总和

         select sum(sal) from emp where dept_id=3;

    5. 计数count(*)

       - 查询1号部门的人数

         select count(*) from emp where dept_id=1;

    聚合函数练习题:

    1. 查询销售的平均工资

       select avg(sal) from emp where job='销售';

    2. 查询程序员的最高工资

       select max(sal) from emp where job='程序员';

    3. 查询名字中包含精的人数

      select count(*) from emp where name like "%精%";

    4. 查询和销售相关的工作,工资总和是多少

       select sum(sal) from emp where job  like "%销售%";

    5. 查询2号部门的最高工资和 最低工资 起别名

       select max(sal) 最高工资,min(sal) 最低工资 from emp where dept_id=2;

    分组查询 

    - 可以将某个字段相同值的数据划分为一组, 然后以组为单位进行统计查询
      1. 查询每个部门的平均工资

      select dept_id,avg(sal) from emp group by dept_id;

      2. 查询每个部门的人数

         select dept_id,count(*) from emp group by dept_id;

      3. 查询每种工作的人数 

         select job,count(*) from emp group by job;

      4. 查询每个部门工资高于 2000 的人数

    ​     select dept_id,count(*) from emp where sal>2000 group by dept_id;

    5. 查询 1 号部门和 2 号部门的人数

       select dept_id,count(*) from emp where dept_id in(1,2) group by dept_id;

    6. 查询平均工资最高的部门 id 和平均工资

    1. select dept_id,avg(sal) from emp group by dept_id order by avg(sal) desc limit 0,1;
    2. select dept_id,avg(sal) a from emp group by dept_id order by a desc limit 0,1;

  • 相关阅读:
    MATLAB向量
    无需字体支持的符号大全(2)
    【运筹优化】结合天际线启发式的遗传算法求解二维矩形装箱问题 + Java代码实现
    【Java】一只小菜坤的编程题之旅【4】
    基于yolov5的交通标志牌的目标检测研究——源码及文档
    LeetCode 热题 HOT 100:链表专题
    Java Socket实现简易多人聊天室传输聊天内容或文件
    Excel 学习笔记
    VS2022 性能提升:更快的 C++ 代码索引
    Ubuntu-server 22.04LTS源码编译apache服务器
  • 原文地址:https://blog.csdn.net/weixin_48100716/article/details/126698878