MySQL数据库,函数与分组

news2024/9/21 16:47:10

单行函数:

  • 操作数据对象

  • 接受参数返回一个结果

  • 只对一行进行变换

  • 每行返回一个结果

  • 可以嵌套

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

数值函数

基本函数:

注: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……

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

每天五分钟计算机视觉:VGG网络相对于AlexNet网络有哪些不同?

本文重点 在前面的课程中,我们已经学习了VGG网络模型,也学习了AlexNet网络模型,AlexNet模型先于VGG网络模型产生,所以VGG在一定程度上要优于AlexNet模型,二者来看一下,二者究竟有什么不同? 深度…

解决微信小程序中 ‘nbsp;‘ 空格不生效的问题

在微信小程序开发中,我们经常会使用 来表示一个空格。这是因为在 HTML 中,空格会被解析为一个普通字符,而不会产生实际的空白间距。而 是一种特殊的字符实体,它被解析为一个不可见的空格,可以在页面上产生真正的空…

AI数字人在tiktok平台开播教程!

AI数字人作为一种虚拟形象的代表,正在逐渐走进人们的生活。在小红书这样的短视频平台上,AI数字人也有机会开展直播活动,展示自己的个性魅力,也可以进行直播带货! 数字人在淘宝购物平台开播原理 (1&#xff…

C++ 指针常量和常量指针的区别

指针常量 指针常量:顾名思义它就是一个常量,但是是指针修饰的。 格式为: int * const p //指针常量在这个例子下定义以下代码: int a,b; int * const p&a //指针常量 //那么分为一下两种操作 *p9;//操…

千万别等到被Python错误重试逼疯了,来这里解脱吧!

Python错误重试逼疯多少人?解决办法来了~~~ 前言 01.安装 pip install tenacity 02.使用 (1)使用规则 ● 同一个参数,多个值用 |(或),+(与)进行组合使用 ● 不同参数之间,只有组合使用,通过关键字参数传参即可 (2)@retry()【常用】 ● 【无条件重试】,只要抛出异…

Dockerfile创建镜像介绍

1.介绍 Docker 提供了一种更便捷的方式&#xff0c;叫作 Dockerfile&#xff0c;docker build命令用于根据给定的Dockerfile构建Docker镜像。 docker build语法&#xff1a; # docker build [OPTIONS] <PATH | URL | -> 常用选项说明 --build-arg&#xff0c;设置构建时的…

nginx 前端服务调用后端服务报426

nginx 前端服务调用后端服务报426 在配置文件中加上一句配置 2&#xff1a;外挂出来

【虹科干货】使用Netropy广域网模拟器测试简化SD-WAN测试

文章速览&#xff1a; 为什么需要WAN模拟器&#xff1f;什么是WAN模拟器&#xff1f;用WAN模拟器测试SD-WANSD-WAN损伤测试 现如今大家都在使用SD-WAN产品节省网络成本&#xff0c;但是也面临着一些复杂的算发问题&#xff0c;那么如何简化SD-WAN系统的测试和评估&#xff1f;…

STM32 寄存器配置笔记——USART DMA发送

一、DMA介绍 直接存储器存取(DMA)用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传 输。无须CPU干预&#xff0c;数据可以通过DMA快速地移动&#xff0c;这就节省了CPU的资源来做其他操作。当产品对于时序要求较严格时&#xff0c;外设使用DMA的方式能够减轻CPU负…

Linux基础项目开发2:物联网监控——视频监控方案介绍(一)

前言&#xff1a; 这次我们来做一个关于视频监控的基础小项目&#xff0c;需要我们用到网络的相关知识&#xff0c;还会学到好多优秀的网络协议&#xff0c;下面让我们开始对物联网视频监控进行一个大体框架的介绍吧 目录 项目内容&#xff1a; 1.视频监控方案介绍 2.视频监控…

【模拟】LeetCode-48. 旋转图像

旋转图像。 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像&#xff0c;这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,2,3],[4,5,6]…

【NR技术】NR NG-RAN整体架构 -功能划分(三)

1 概述 NG-RAN节点包括: gNB&#xff0c;向终端提供NR用户平面和控制平面协议终端;ng-eNB&#xff0c;向终端提供E-UTRA用户平面和控制平面的协议终端。gNB和ng- eNB通过Xn接口相互连接。gnb和NG- eNB也通过NG接口连接到5GC&#xff0c;更具体地说&#xff0c;通过NG-C接口连…

[IDEA] 写代码时没有类型推断的解决方法

本示例使用scala, 其他语言同理 使用 .var 时会自动生成变量 使用快捷键 CtrlAtlv 一样 val abc "abc"但是这个变量没有显式表现类型 期望 val abc: String "abc" 解决方法

神经网络是如何工作的? | 京东云技术团队

作为一名程序员&#xff0c;我们习惯于去了解所使用工具、中间件的底层原理&#xff0c;本文则旨在帮助大家了解AI模型的底层机制&#xff0c;让大家在学习或应用各种大模型时更加得心应手&#xff0c;更加适合没有AI基础的小伙伴们。 一、GPT与神经网络的关系 GPT想必大家已…

教程 || 电脑端如何登录两个以上微信?

1、桌面上右键新建文本文档 2、重命名成“双开.bat”&#xff0c;点击 “是&#xff08;Y&#xff09;” 3、右键点击&#xff0c;选择编辑&#xff0c;输入&#xff1a; echo off start “” “D:\WeChat\WeChat.exe” start “” “D:\WeChat\WeChat.exe” exit 其中&…

_try_except原理探究

调用_except_handle3这个异常处理函数&#xff0c;这里并不是每个编译器的异常处理函数都是相同的&#xff0c;然后存入结构体&#xff0c;将esp的值赋给fs:[0]&#xff0c;再就是提升堆栈的操作 每个使用 _try _except的函数&#xff0c;不管其内部嵌套或反复使用多少_try _ex…

清雪除冰,扫出“平安路” 开封市鼓楼区民政局社工组织开展除雪破冰志愿行动

近日&#xff0c;我市迎来大范围降雪天气&#xff0c;积雪融化、道路结冰、湿滑难行&#xff0c;造成居民群众出行不便和较大的交通安全隐患。为迅速清除积雪和道路结冰积水&#xff0c;保障辖区居民尤其是困境群体的出行安全&#xff0c;2023年12月11日下午&#xff0c;鼓楼区…

品牌线下店铺的查价方式

不同于电商平台&#xff0c;线下店铺会更传统&#xff0c;产品定价除了受品牌规则的约束&#xff0c;同样也与门店实际销量和促销有关&#xff0c;当遇到地方活动&#xff0c;促销力度大了&#xff0c;价格难免会与品牌要求相差异&#xff0c;但是管控渠道&#xff0c;包含线上…

【产品经理】产品专业化提升路径

产品专业化就是上山寻路&#xff0c;梳理一套作为产品经理的工作方法。本文作者从设计方法、三基座、专业强化、优秀产品拆解、零代码这五个方面&#xff0c;对产品经理的产品专业化进行了总结归纳&#xff0c;一起来看一下吧。 产品专业化就是上山寻路&#xff0c;梳理一套作为…

约数性质以及辗转相除法

文章目录 AcWing 869. 试除法求约数题目链接思路CODE AcWing 870. 约数个数题目链接思路CODE AcWing 871. 约数之和题目链接思路CODE AcWing 872. 最大公约数题目链接思路CODE AcWing 869. 试除法求约数 题目链接 https://www.acwing.com/activity/content/problem/content/9…