首页 > 数据库 >MySQL零基础入门教程-5 单行处理函数、分组函数、mysql关键字执行顺序,基础+实战

MySQL零基础入门教程-5 单行处理函数、分组函数、mysql关键字执行顺序,基础+实战

时间:2024-09-05 09:25:35浏览次数:14  
标签:函数 入门教程 分组 mysql 薪资 NULL where 处理函数

 教程来源:B站视频BV1Vy4y1z7EX

001-数据库概述_哔哩哔哩_bilibili

我听课整理的课程的完整笔记,供大家学习交流下载:夸克网盘分享

本文内容为完整笔记的第五篇

17、单行数据处理函数P30-36&分组函数

  • 17.1、数据处理函数又被称为单行处理函数单行处理
    • 函数的特点:一个输入对应一个输出。
    • 和单行处理函数相对的是:多行处理函数。(多行处理函数特点:多个输入,对应1个输出!)
  • 17.2、单行处理函数常见的有哪些?
    • 1、Lower 转换小写

    • 2、upper 转换大写

    • 3、substr 取子串(substr(被截取的字符串,起始下标,截取的长度))

    • 案例:首字母大写?

    • 4、length 取长度

空格是as省略重命名的意思

    • 5、trim 去空格

    • 6、str_to_date 将字符串转换成日期
    • 7、date format格式化日期
    • 8、format 设置千分位
    • 9、round 四舍五入
      • select后面也可以跟字面量/字面值(数据)

      • 保留整数位,1位小数,2位小数

      • 保留到十位

    • 10、rand()生成随机数
      • rand()生成0-1之间的随机数,可以对其处理成100以内随机数

    • 11、ifnull 可以将 null 转换成一个具体值
      • ifnull是空处理函数。专门处理空的.
      • 在所有数据库当中,只要有NULL参与的数学运算,最终结果就是NULL.

      • 注意:NULL只要参与运算,最终结果一定是NULL。为了避免这个现象,需要使用ifnul1函数,ifnul1函数用法:1fnul1(数据.被当做哪个借)
      • 如果"数据"为NULL的时候,把这个数据结构当做哪个值
      • 补助为NULL的时候,将补助当做0

    • 12、case..when..then..when..then..else..end
      • 当员工的工作岗位是MANAGER的时候,工资上调10%,当工作岗位是SALESMAN的时候,工资上调50%,其它正常。(注意:不修改数据库,只是将查询结果显示为工资上调)

  • 18、分组函数(多行处理函数)
    • 多行处理函数的特点输入多行,最终输出一行。
    • 5个:
      • count计数
      • sum求和
      • avg平均值
      • max最大值
      • min最小值
    • 注意:
      • 分组函数在使用的时候必须先进行分组,然后才能用。
      • 如果你没有对数据进行分组,整张表默认为一组。
    • 五个分组函数使用示例
      • 找出最高工资?

      • 找出最低工资?

      • 计算工资和:

      • 计算平均工资:

      • 计算员工数量?

    • 分组函数在使用的时候需要注意哪些?
      • 第一点:分组函数自动忽略NULL,你不需要提前对NULL进行处理。

      • 第二点:分组函数中count(*)和count(具体字段)有什么区别?

      • 第三点:分组函数不能够直接使用在where子句中。

      • 第四点:所有的分组函数可以组合起来一起用。

  • 19、分组查询(非常重要:五颗星*****)
    • 19.1、什么是分组查询?
      • 在实际的应用中,可能有这样的需求,需要先进行分组,然后对每一组的数据进行操作
      • 这个时候我们需要使用分组查询,怎么进行分组查询呢?

    • 19.2、将之前的关键字全部组合在一起,来看一下他们的执行顺序?
      • 关键词

      • 以上关键字的顺序不能颠倒,需要记忆.
      • 执行顺序是什么?

      • 为什么分组函数不能直接使用在where后面?

      • 为什么没分组,select后面也可以直接用分组函数?

    • 19.3、找出每个工作岗位的工资和?
      • 实现思路:按照工作岗位分组,然后对工资求和。

      • select后面只能跟:参加分组的字段,以及分组函数。

      • 重点结论:
        • 在一条select语句当中,如果有group by语句的话,select后面只能跟:参加分组的字段,以及分组函数。
        • 其它的一律不能跟。
    • 19.4、找出每个部门的最高薪资
      • 实现思路是什么?
        • 按照部门编号分组 ,求每一组的最大值。

    • 19.5、找出"每个部门,不同工作岗位"的最高薪资?
      • 技巧:两个字段联合成1个字段看。(两个字段联合分组)

    • 19.6、使用having可以对分完组之后的数据进一步过滤。
      • having不能单独使用,having不能代替where,
      • having必须和group by联合使用
      • 找出每个部门最高薪资,要求显示最高薪资大于3000的?

      • 思考一个问题:以上的sql语句执行效率是不是低?
        • 比较低,实际上可以这样考虑:先将大于3000的都找出来,然后再分组.

        • 优化策略:where和having优先选where,where实在完成不了了,再选择having
    • 19.7、where没办法的????
      • 找出每个部门平均薪资,要求显示“平均薪资”高于2500的。

  • 20、大总结(单表的查询学完了)
    • 已学关键词和顺序

    • 执行过程顺序
      • from从某张表中查询数据,
      • 先经过where条件筛选出有价值的数据
      • group by对这些有价值的数据进行分组.
      • 分组之后可以使用having继续筛选.
      • select查询出来.
      • 最后order by排序输出!
    • 找出每个岗位的平均薪资,要求显示平均薪资大于1500的,除MANAGER岗位之外,要求按照平均薪资降序排。

标签:函数,入门教程,分组,mysql,薪资,NULL,where,处理函数
From: https://blog.csdn.net/WangMing_X/article/details/141918659

相关文章

  • MySQL——事务与存储过程(四)综合案例——存储过程应用
            通过一个应用案例让读者熟悉在实际开发中,创建并使用存储过程的完整过程。1.创建一个stu表stu表结构字段名数据类型主键外键非空唯一自增idINT(10)是否是是否nameVARCHAR(50)否否是否否classVARCHAR(50)否否是否否stu表数据idnameclass1Lucyclass12Tomc......
  • MySQL——事务与存储过程(二)存储过程的创建(5)流程控制的使用
        在编写存储过程时还有一个非常重要的部分——流程控制。流程控制语句用于将多个SQL语句划分或组合成符合业务逻辑的代码块。MySQL中的流程控制语句包括:IF语句、CASE语句LOOP语句、WHILE语句、LEAVE语句、ITERATE语句、REPEAT语句和WHILE语句。     ......
  • mysql 8.0 的 建表 和八种 建表引擎实例
    文章目录MySQL8.0中,主要有以下八种常见的建表引擎一、InnoDB引擎建表注意点建表知识点二、MyISAM引擎建表使用场景三、Memory引擎使用场景四、Archive引擎五、BLACKHOLE引擎一、特点二、适用场景三、注意事项六、MRG_MyISAM引擎MRG_MyISAM和MyISAM的区别......
  • 第十讲:为什么我的MySQL会“抖”一下?
    目录第十讲:为什么我的MySQL会“抖”一下?图概:提出现实问题:SQL执行的时候特别快,有时变得特别慢原因:为什么有时会“flush”呢?第一种场景,粉板满了,记不下了。第二种场景,要记住的事情太多,自己快记不住了,找账本把这笔账先加进去。第三种场景是,生意不忙,打烊之后柜台没事,掌柜闲着也是闲......
  • MySQL常用窗口函数总和
    在MySQL中,窗口函数是一类用于在查询结果集中计算值的函数,允许用户根据数据行进行聚合或排序操作,同时保留行的详细信息。窗口函数在分析数据时非常有用,因为它们允许您在不缩小结果集的情况下对数据进行复杂的计算。常见的窗口函数包括:ROW_NUMBER()RANK()DENSE_RANK()NTILE(......
  • MySQL insert sql 返回自增id
    xml<insertid="addMain"useGeneratedKeys="true"keyColumn="id"keyProperty="id"parameterType="com.hopedove.coreserver.vo.vpm.ForeignTradeOutboundOrderVO">insertintoaps_foreign_trade_ex......
  • Linux宝塔Mysql两台服务器主从配置,服务器存在多个库
    实现目标:两台服务器(一台为从服务器,一台为主服务器),当主服务器的数据修改,从服务器复制主服务器的操作,实现自动修改数据;1、主数据库操作-先登录主数据库#登录数据库,用root登录方便,用其他账号会提示权限不足,需要登录root给予权限mysql-uroot-p密码2、创建一个账号,供从库用......
  • 构建专业技能:MySQL数据备份策略的培训与实践
    数据备份是数据库管理中的一项基础且关键的任务,它直接关系到数据安全和业务连续性。在MySQL环境中,有效的数据备份策略培训对于确保团队成员能够正确执行备份操作、理解备份原理以及在必要时进行数据恢复至关重要。本文将详细介绍如何在MySQL中实现数据备份的策略培训,包括培......
  • 优化MySQL数据备份的网络策略:技术与实践
    在当今的数据库管理实践中,数据备份是确保数据安全性和业务连续性的关键环节。MySQL作为广泛使用的数据库系统,其数据备份过程往往涉及大量的数据传输,尤其是在分布式或云环境中。因此,网络优化在MySQL数据备份中扮演着至关重要的角色。本文将探讨如何在MySQL中实现数据备份的网......
  • MySQL(二)函数
    聚合函数1、AVG()函数返回数值列的平均值SELECTAVG(column_name)FROMtable_name2、COUNT()函数返回匹配指定条件的行数(1)返回指定列的值的数目(NULL不计入)SELECTCOUNT(column_name)FROMtable_name;(2)返回表中的记录数SELECTCOUNT(*)FROMtable_name;(3)返回指......