MySQL数据库,函数与分组

单行函数:

  • 操作数据对象

  • 接受参数返回一个结果

  • 只对一行进行变换

  • 每行返回一个结果

  • 可以嵌套

  • 参数也可以是一列或一个值

数值函数

基本函数:

注:ROUND(x,y)函数的y是负数时,即往高位进行四舍五入,如-3就是按百位进行四舍五入(如ROUND(12767,-3)的结果为13000)。TRUNCATE与ROUND的区别是:

  • TRUNCATE是直接取y位小数,不进行四舍五入

  • TRUNCATE没有单参数的函数,必须传入操作数和截断的小数位 。

  • TRUNCATE(12767,-3)的结果是12000。

三角函数

由于参数要代入的是弧度值,所以经常要用到角度和弧度的运算的函数:

指数和对数:

进制间的转换:

字符串函数:

注:在MySQL中,字符串的索引是从1开始的

日期和时间函数:

获取日期时间:

日期与时间戳的转换:

获取月份、星期、星期数、天数等函数:

日期的操作函数:

时间和秒钟转换的函数

计算日期和时间的函数:

注:加减组合型类型时要用字符串,并将要组合的两个元素用_隔开。例如:

SELECT DATE_ADD(NOW(),INTERVAL '2_2' YEAR_MONTH)

FROM DUAL;

注:ADDTIME的时间也可以用'时:分:秒'表示,例如:

SELECT ADDTIME(NOW( ),'2:2:2')

FROM DUAL;

日期的格式化与解析:

格式化:日期  ——》字符串

解析:字符串  ——》日期

格式化的格式符:

流程控制函数:

流程处理函数可以根据不同的条件,执行不同的处理流程,可以在SQL语句中实现不同的条件选择。MySQL中的流程处理函数主要包括IF( )、IFNULL( )、CASE( )函数。

加密与解密函数

加密与解密函数主要用于对数据库的数据进行加密和解密处理,以防止数据被他人窃取。

注:

PASSWORD/ENCODE/DECODE函数在MySQL8.0中开始被弃用,不能再使用PASSWORD/ENCODE/DECODE函数。

MD5和SHA函数都是不可逆的。

MySQL信息函数:

MySQL中内置了一些可以查询MySQL信息的函数,这些函数主要用于帮助数据库开发或运维人员更好地对数据库进行维护工作。

其他函数:

注:

FORMAT函数中n如果小于零,不会往高位去四舍五入保留,而是保留整数部分

关于以点分割的IP地址和数字形式的IP地址:以“192.168.1.100”为例,数字形式是192乘以256的三次方,加上168乘以256的二次方,加上1乘以256的一次方,加上100乘以256的零次方。

聚合函数:

聚合函数(或聚集函数、分组函数)是对一组数据进行汇总的函数,输入的是一组数据的集合,输出的是单个值。

即作用于一组数据,并对一组数据返回一个值。

常见的几个聚合函数:

  • AVG( ):求平均值

  • SUM( ):求总和

  • MAX( ):求最大值

  • MIN( ):求最小值

  • COUNT( ):计算指定的字段在查询结果中查询的个数

注:AVG函数和SUM函数的参数只能代入数值类的数据的集合,因为非数值类的数据(比如字符串)的集合没有平均、总和的说法

MAX函数和MIN函数的参数可以代入数值类的数据的集合,也可以代入一些非数值类的数据(比如日期、字符串)的数据的集合,字符串可以按照ASCII码值按位比较的方式来比较大小。

以上函数在计算指定字段出现的个数时,都不会计算字段值为NULL的数据

GROUP BY的使用

  • 要对数据进行分组时,使用GROUP BY加上指定的字段作为分组的标准

  • SELECT中出现的非组函数的字段(即不是出现在对分出来的每个组进行操作的函数中的字段)必须声明在GROUP BY中,GROUP BY中声明的字段不能出现在SELECT中。会出现冲突,比如,以工作职位分组,查询每个部门的平均工资,如果又要查询部门,但是每个工作职位的组中有不同的部门,就形成了冲突。(如果未分组即把所有的数据当作一个组,没有使用ORDER BY时的聚合函数也是组函数)

  • GROUP BY声明在FROM后面、WHERE后面

例:要按工作职位和工作部门两个标准来排序

SELECT job , deptno , AVG(sal)

FROM emp

GROUP BY job , deptno

ORDER BY AVG(sal) DESC;

GROUP BY中使用WITH ROLLUP

  • 使用WITH ROLLUP关键字后,在所有查询出的分组记录之后增加一条记录,该记录计算查询出的所有的记录的总和,即统计记录数量。

  • 当使用WITH ROLLUP时,不能同时使用ORDER BY子句进行结果排序,即ROLLUP和ORDER BY是互相排斥的。

HAVING的使用:

  • HAVING的作用是用来过滤数据。

  • 如果过滤条件中使用了聚合函数,则必须使用HAVING来替换WHERE

  • HAVING必须声明在GROUP BY后面

  • 使用HAVING的情况是SQL中使用了GROUP BY

  • 如果过滤条件中有聚合函数,则此过滤条件必须声明在HAVING中。如果过滤条件中没有聚合函数,则此过滤条件声明在WHERE中或HAVING中都可以,建议声明在WHERE中,执行效率会更高

SELECT执行顺序:

查询语句的代码的书写的顺序:

SELECT……FROM……WHERE……GROUP BY……HAVING……ORDER BY……LIMIT……

查询语句的执行顺序:

FROM……ON……JOIN……WHERE……GROUP BY……HAVING……SELECT的字段……DISTINCT……ORDER BY……LIMIT……

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/226762.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

机器学习 类别特征编码:Category Encoders 库的使用

✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心&…

优雅提效:Guava的字符串处理工具

第1章:引言 大家好,我是小黑,今天咱们要聊一聊Google Guava这个超棒的Java库,尤其是它的字符串处理工具。对于Java程序员来说,字符串处理是日常工作的一部分,而Guava在这方面提供了非常强大的支持。使用Gu…

12.7_黑马数据结构与算法Java

030 单向链表 get 不会提前拿到所有的索引值,这样维护起来非常不方便。因此,我们是在遍历的时候得到他的索引值 %d:数字的占位符就是用百分号d表示 %n:换行符 thinking:String.format()? String.format()的详细用法_七月J的博客-…

大数据在互联网营销中的应用:案例与策略

互联网时代的营销领域正经历着一场由大数据驱动的变革。在2023年,大数据的应用已成为推动市场策略和决策的关键因素。本文将探讨大数据如何影响互联网营销,并通过实际案例分析展示其在提升营销效果方面的作用。 首先,通过分析海量数据&#x…

如何配置Modbus转Profinet网关与6台232 Modbus伺服通信

Modbus转Profinet网关连接6台232 Modbus伺服同时控制的解决方案不仅简化了设备连接,还减少了人力投入和维护成本。通过Modbus转Profinet网关,操作人员只需对Profinet网关进行设置和监控,即可实现对6台232 Modbus伺服的集中控制。 Modbus转Pro…

中山大学李华山、王彪课题组开发 SEN 机器学习模型,高精度预测材料性能

内容一览:了解全局晶体对称性并分析等变信息,对于预测材料性能至关重要,但现有的、基于卷积网络的算法尚且无法完全实现这些需求。针对于此,中山大学的李华山、王彪课题组,开发了一款名为 SEN 的机器学习模型&#xff…

史上最强 Charles 抓包

📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢交流讨论:欢迎加入我们一起学习!📢资源分享:耗时200小时精选的「软件测试」资…

Python中如何判断List中是否包含某个元素

更多资料获取 📚 个人网站:ipengtao.com 在Python中,判断一个列表(List)是否包含某个特定元素是常见的任务之一。在本文中,将深入探讨多种判断List成员包含性的方法,并提供丰富的示例代码&…

嵌入式工程师校招经验与学习路线总结

前言:不知不觉2023年秋招已经结束,作者本人侥幸于秋招中斩获数十份大差不差的OFFER,包含:Top级的AIGC,工控龙头,国产MCU原厂,医疗器械,新能源车企等。总而言之,秋招总体情…

量子纠缠通讯:未来信息技术的革新者

量子纠缠通讯:未来信息技术的革新者 引言 在科技日新月异的今天,我们正逐步走进一个全新的科技时代——量子时代。量子纠缠通讯作为量子技术的重要分支,以其独特的优势和巨大的潜力,成为了当今世界研究的热点。本文将带您深入探讨量子纠缠通讯的奥秘,了解其原理、优势、…

架构师-3.用户体系

系统提供了 2 种类型的用户,分别满足对应的管理后台、用户 App 场景。 1.AdminUser 管理员用户,前端访问 s-ui-admin-vue3管理后台,后端访问 /admin-api/** RESTful API 接口。 2.MemberUser 会员用户,前端访问 s-ui-user用户 App,后端访问 /app-api/** RESTful API 接口。…

Java中lambda表达式的使用

💕"我不要麻木的死去"💕 作者:Mylvzi 文章主要内容:Java中lambda表达式的使用 一.背景 lambda表达式是Java SE 8中一个重要的新特性,允许你使用一个表达式来代替功能接口。lambda表达式可以看作一个没有返…

基于SpringBoot+Vue实现的小区物业管理系统

文章目录 系统介绍技术选型成果展示账号地址及其他说明 系统介绍 基于SpringBootVue实现的小区物业管理系统是为物业管理打造的一款在线管理平台,它可以实时完成信息处理,对小区信息、住户等进行在线管理,使其系统化和规范化。 系统功能说明…

架构师一1.功能权限

1. RBAC 权限模型 系统采用 RBAC 权限模型&#xff0c;全称是 Role-Based Access Control 基于角色的访问控制。 简单来说&#xff0c;每个用户拥有多个角色&#xff0c;每个角色拥有多个菜单&#xff0c;菜单中存在菜单权限、按钮权限。这样&#xff0c;就形成了 “用户<-…

画好一张规范的原理图,这些点你可要注意了!

不光是代码有可读性的说法&#xff0c;原理图也有。很多时候原理图不仅仅是给自己看的&#xff0c;也会给其它人看&#xff0c;如果可读性差&#xff0c;会带来一系列沟通问题。所以&#xff0c;要养成良好习惯&#xff0c;做个规范的原理图。此外&#xff0c;一个优秀的原理图…

msvcp140_ATOMIC_WAIT.dll丢失的相关解决方法分享

在计算机使用过程中&#xff0c;我们可能会遇到一些错误提示&#xff0c;其中之一就是msvcp140_CODECVT_IDS.dll丢失。这个错误通常会导致某些应用程序无法正常运行&#xff0c;给用户带来困扰。本文将详细介绍msvcp140_CODECVT_IDS.dll的作用和影响&#xff0c;并提供5个解决办…

【C语言】函数递归--输出n的k次方

题目描述&#xff1a; 递归实现n的k次方 代码如下&#xff1a; #include<stdio.h> int nk(int n, int k) {if (k > 0)return n * nk(n, k - 1); } int main() {int ret 0;int n 0;int k 0;scanf("%d", &n);scanf("%d", &k);ret nk(n…

基于springboot + vue的社区医院信息系统

qq&#xff08;2829419543&#xff09;获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;springboot 前端&#xff1a;采用vue技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xf…

C:算术移位和逻辑移位傻傻分不清楚

1. 算术移位与逻辑移位概念 算术移位指令对带符号数进行移位。 逻辑移位指令对无符号数进行移位。 算术左移、右移&#xff0c;逻辑左移、右移 如图所示 &#xff1a; 这里有一个进位位C&#xff0c;它就是标志寄存器 &#xff08;即状态寄存器&#xff0c;亦称程序状态字寄…

ESP32-Web-Server编程-通过 Base64 编码在网页中插入图片

ESP32-Web-Server编程-通过 Base64 编码在网页中插入图片 概述 不同于上节 ESP32-Web-Server编程-在网页中通过 src 直接插入图片&#xff0c;本节引入 Base64 编码来显示图片。 Base64 是一种用64个字符来编码表示任意二进制数据的方法。任何符号都可以转换成 Base64 字符集…