• day02 MYSQL的查询操作详解


    本节内容所用的测试表

    有需要的,可以点击这里下载,test.sql
    主要包含ename名字,job职务,hiredate入职时间,sal薪资等字段
    在这里插入图片描述

    基础查询

    查询某个字段

    SELECT 字段名 FROM 表名;
    
    • 1
    • 在emp表中查询ename字段数据
      在这里插入图片描述
    • 查询多个表中的字段内容:ename job mgr信息
      在这里插入图片描述

    查询全部字段

    SELECT * FROM 表名;
    
    • 1

    查询全部字段信息:
    在这里插入图片描述

    修改名称

    SELECT 字段名 AS '修改后的名字' FROM emp;
    
    • 1

    利用AS 加上一个新的名字来实现改名
    在这里插入图片描述

    AS可以省略,直接在后面指定新的名字,注意一定别忘了 ’ ’ 号

    数学运算

    SELECT 字段(进行算数运算) FROM emp;
    
    • 1
    • 薪资实现乘法
      在这里插入图片描述
    • 薪资实现除法(除以10)
      在这里插入图片描述

    小结

    • 显示表中的工人名字,薪资,职务,并且改名:

    在这里插入图片描述

    条件查询

    使用WHERE进行条件的查询

    可以用作条件的运算符:

    关系运算符功能
    >大于
    >=大于等于
    <小于
    <=小于等于
    =等于
    <> 或 !=不等于
    逻辑运算符功能
    AND 或 &&并且(多个条件同时成立)
    OR 或 ||或者(多个条件任意成立一个)
    NOT 或 !非,不是
    其他功能
    BETWEEN…AND…在某个范围之间(含最小、最大值)
    IN(…)在in之后的列表中的值,多选一
    LIKE模糊匹配(_匹配单个字符,%匹配任意个字符)
    IS [NOT] NULL是 NULL

    注意其他中的运算符。

    关系及逻辑运算符

    SELECT * FROM 表名 WHERE 字段名 关系 数值
    
    • 1
    • 查询所有sal薪资小于2000的数据信息
      在这里插入图片描述
    • 逻辑运算 && 实现 job名称为指定名称并且sal小于2000,此处也可以使用 AND,
      在这里插入图片描述

    其他运算符

    • BETWEEN AND实现在指定范围查找sal 在1500 到 2000的范围内的合适的数据
      在这里插入图片描述
    • IN获取括号之后的特定的值 :800 和1500
    • LIKE进行模糊搜索:用四个_ 实现查询四个字的名称
      在这里插入图片描述

    小结

    查询所有名称的最后一个字母为S的人的姓名和薪资
    使用%进行指定字母的查询;LIKE模糊查询

    在这里插入图片描述

    聚合查询

    统计函数

    函数名作用
    MAX(column)返回某列的最低值(没有则返回NULL)
    MIN(column)返回某列的最高值(没有则返回NULL)
    COUNT(column)返回某列的行数(不包括 NULL 值)
    COUNT(*)返回被选列行数(包括NULL)
    SUM(column)求和
    AVG(column)求平均值

    统计数量

    SELECT COUNT(查询名) FROM emp
    
    • 1
    • 统计整个表的行数:
      在这里插入图片描述
    • 统计特定信息的行数:具有sal的行数:

    计算函数

    • MAX函数:输出最大的sal的信息
    • MIN函数:与MAX函数相似
    • SUM函数求和:输出sal之和
      在这里插入图片描述
    • AVG函数:求平均值

    小结

    计算所有job等于SALESMAN的员工的薪资之和,并改名

    在这里插入图片描述

    分组查询

    SELECT 字段名 FROM 表名 GROUP BY 分组字段 (可选:)HAVING[分组后条件]
    
    • 1

    GROUP BY

    • 查询职务,职务只出现一次(会有重复的情况,GROUP BY将其分组为只出现一次)
      在这里插入图片描述
    • 统计每个岗位的人数
      在这里插入图片描述
    • 分别统计每个岗位的最小最大工资
      在这里插入图片描述
    • 显示不同职务薪资小于1500的人数 并且此人数要大于2
      在这里插入图片描述

    注意事项

    • 如果没有group by语句,则SELECT中只允许出现统计函数,不能出现其他字段:

    出错:SELECT ename,MAX(sal) FROM emp; --> 出现了ename

    • 如果有group by语句,则SELECT中只允许出现GROUP BY中出现的字段

    出错:SELECT sal FROM emp GROUP BY job; —>sal不对应job

    小结

    显示非销售人员(salesman)工作名称以及从事同一工作的员工的月工资的总和,并且要满足从事同一工作的员工的月工资合计大于5000

    1. 首先统计职务不为销售:
      在这里插入图片描述
    2. 统计职务不为销售的各个职位的员工的工资之和,并且显示工资大于5000
      在这里插入图片描述

    排序查询

    语法

    SELECT 字段名 FROM 表名 ... ORDER BY 排序字段名 [ASC|DESC],[排序字段名 [ASC|DESC]];
    
    • 1

    语法说明:

    • 排序字段名:表示需要排序的字段名称,多个字段时用逗号隔开。
    • ASC|DESC:ASC表示字段按升序排序;DESC表示字段按降序排序。其中ASC为默认值。

    特点

    • ORDER BY子句一般放到查询语句的最后面,LIMIT字句除外。

    • 当排序的字段中存在空值时,ORDER BY 会将该空值作为最小值来对待。

    • ORDER BY 指定多个字段进行排序时,MySQL 会按照字段的顺序从左到右依次进行排序。

    • 注意:在对多个字段进行排序时,排序的第一个字段必须有相同的值,才会对第二个字段进行排序。如果第一个字段数据中所有的值都是唯一的,MySQL 将不再对第二个字段进行排序。

    示例

    • 根据姓名对员工进行排序(升序)
      在这里插入图片描述
    • 查询入职时间大于1981年6月6日的员工信息,并按照入职时间升序排列
      在这里插入图片描述
    • 根据工作职位,进行升序排列,职位相同的情况下,再根据入职时间降序排列
      在这里插入图片描述

    小结

    按工作职位进行分组,查看每个工作职位的人数,工作职位按升序排列
    在这里插入图片描述

    分页查询

    语法

    SELECT 字段名 FROM 表名 LIMIT 起始索引,查询记录数;
    
    • 1

    特点

    • 起始索引从0开始,起始索引 = (查询页码 - 1) * 每页显示记录数;
    • 如果查询的是第一页数据,起始索引可以省略,直接简写为LIMIT 10。

    示例

    • 查询第一页员工数据,每页展示10条记录
      在这里插入图片描述
    • 查询第二页: (2-1)*10:公式
      在这里插入图片描述
    • 查询工资大于1500的员工数据,按工资升序排列,并分页,每页展示5条数据:第二页则LIMIT 5,5.
      在这里插入图片描述

    本节完整测试代码

    点这里进入

  • 相关阅读:
    解决input事件监听拼音输入法导致高频事件
    双十一购物指南:电视盒子哪个牌子好?口碑电视盒子品牌排行榜
    动态规划TLE之后转向单调栈的解题路径——LeetCode 84 柱状图中的最大矩形(困难)
    【外汇天眼】交易之路:从无知到觉醒,揭秘成功交易员的五个成长阶段
    【golang学习笔记2.2】 Map、结构体和接口
    Linux下protobuf和 protobuf-c安装使用
    消息中间件-RabbitMq相关概念及原理介绍【图文并茂】
    acwing周赛--字符串
    建信金融科技--软开笔试题1.答案--java--9.12
    Java自定义注解
  • 原文地址:https://blog.csdn.net/jj6666djdbbd/article/details/126669760