MYSQL函数,一篇文章看完!

做程序员的谁会离得开数据库呢?今天就来分享一下我整理的MySQL的常用函数,基本上囊括了平时要用的函数,它们已经陪我走过了不少年头了,风里来雨里去,缝缝补补又几年,希望能帮到你们!

在这里插入图片描述
如果数据库函数你能用得好,其他的东西也就水到渠成了。


文章目录
    • 一、流程控制函数
    • 二、聚合函数
    • 三、加密函数
    • 四、日期函数
    • 五、数字函数
    • 六、字符串函数
    • 七、其他函数
    • 八、结语


一、流程控制函数

序号函数说明
1IF(test,t,f)如果test是真,返回t;否则返回f
2IFNULL(arg1,arg2)如果arg1不是空,返回arg1,否则返回arg2
3NULLIF(arg1,arg2)如果arg1=arg2返回NULL;否则返回arg1
4CASE WHEN[test1] THEN [result1]…ELSE [default] END如果testN是真,则返回resultN,否则返回default
5CASE [test] WHEN[val1] THEN [result]…ELSE [default]END如果test和valN相等,则返回resultN,否则返回default

举例:IF(test,v1,v2)如果表达式 expr 成立,返回结果 v1;否则,返回结果 v2

SELECT IF(1>0,'yes','no');

结果:

yes


二、聚合函数

序号函数说明
1COUNT(col)统计查询结果的行数
2MIN(col)查询指定列的最小值
3SUM(col)求和,返回指定列的总和
4AVG(col)求平均值,返回指定列数据的平均值

举例:SUM(expression)返回指定字段的总和

SELECT SUM(age) AS totalAage FROM Student;

结果:

age的总和

我私藏了很多技术干货,粉丝可白嫖(点这里)


三、加密函数

序号函数说明
1SHA()计算字符串str的安全散列算法(SHA)校验和
2PASSWORD(str)返回字符串str的加密版本,这个加密过程是不可逆转的,和UNIX密码加密过程使用不同的算法
3MD5()计算字符串str的MD5校验和
4ENCRYPT(str,salt)使用UNIXcrypt()函数,用关键词salt(一个可以惟一确定口令的字符串,就像钥匙一样)加密字符串str
5ENCODE(str,key)使用key作为密钥加密字符串str,调用ENCODE()的结果是一个二进制字符串,它以BLOB类型存储

示例1:在字符串上实现ENCODE函数。

SELECT  
ENCODE('geeksforgeeks', 'passwordstring'); 

结果:

Q)?P????j[K 


四、日期函数

序号函数说明
1CURDATE()返回当前日期
2CURRENT_DATE()返回当前日期
3CURRENT_TIME返回当前时间
4CURRENT_TIMESTAMP()返回当前日期和时间
5CURTIME()返回当前时间
6DATE()从日期或日期时间表达式中提取日期值
7DATEDIFF(d1,d2)计算日期 d1->d2 之间相隔的天数
8YEAR(d)返回年份
9YEARWEEK(date, mode)返回年份及第几周(0到53),mode 中 0 表示周天,1表示周一,以此类推
10WEEKOFYEAR(d)计算日期 d 是本年的第几个星期,范围是 0 到 53
11WEEKDAY(d)日期 d 是星期几,0 表示星期一,1 表示星期二
12WEEK(d)计算日期 d 是本年的第几个星期,范围是 0 到 53
13TO_DAYS(d)计算日期 d 距离 0000 年 1 月 1 日的天数
14TIMESTAMP(expression, interval)单个参数时,函数返回日期或日期时间表达式;有2个参数时,将参数加和
15TIMEDIFF(time1, time2)计算时间差值
16TIME_TO_SEC(t)将时间 t 转换为秒
17TIME_FORMAT(t,f)按表达式 f 的要求显示时间 t
18TIME(expression)提取传入表达式的时间部分
19SYSDATE()返回当前日期和时间
20SUBTIME(t,n)时间 t 减去 n 秒的时间
21SUBDATE(d,n)日期 d 减去 n 天后的日期
22STR_TO_DATE(string, format_mask)将字符串转变为日期
23SEC_TO_TIME(s)将以秒为单位的时间 s 转换为时分秒的格式
24SECOND(t)返回 t 中的秒钟值
25QUARTER(d)返回日期d是第几季节,返回 1 到 4
26SECOND(t)返回 t 中的秒钟值
27QUARTER(d)返回日期d是第几季节,返回 1 到 4
28PERIOD_DIFF(period1, period2)返回两个时段之间的月份差值
29PERIOD_ADD(period, number)为 年-月 组合日期添加一个时段
30NOW()返回当前日期和时间
31MONTH(d)返回日期d中的月份值,1 到 12
32MONTHNAME(d)返回日期当中的月份名称,如 November
33MINUTE(t)返回 t 中的分钟值
34MICROSECOND(date)返回日期参数所对应的微秒数
35MAKETIME(hour, minute, second)组合时间,参数分别为小时、分钟、秒
36MAKEDATE(year, day-of-year)基于给定参数年份 year 和所在年中的天数序号 day-of-year 返回一个日期
37LOCALTIMESTAMP()返回当前日期和时间
38LOCALTIME()返回当前日期和时间
39LAST_DAY(d)返回给给定日期的那一月份的最后一天
40HOUR(t)返回 t 中的小时值
41FROM_DAYS(n)计算从 0000 年 1 月 1 日开始 n 天后的日期
42EXTRACT(type FROM d)从日期 d 中获取指定的值,type 指定返回的值。 type可取值为时、分、秒、周等等
43DAYOFYEAR(d)计算日期 d 是本年的第几天
44DAYOFWEEK(d)日期 d 今天是星期几,1 星期日,2 星期一,以此类推
45DAYOFMONTH(d)计算日期 d 是本月的第几天
46DAYNAME(d)返回日期 d 是星期几,如 Saturday,Sunday
47DAY(d)返回日期值 d 的日期部分
48DATE_SUB(date,INTERVAL expr type)函数从日期减去指定的时间间隔。
49DATE_FORMAT(d,f)按表达式 f的要求显示日期 d
50ADDTIME(t,n)n 是一个时间表达式,时间 t 加上时间表达式 n
51ADDDATE(d,n)计算起始日期 d 加上 n 天的日期

举例:DAYNAME(d)返回日期 d 是星期几,如 Monday,Tuesday

SELECT DAYNAME('2018-6-1 12:45:21');

结果:

Friday

我私藏了很多技术干货,粉丝可白嫖(点这里)


五、数字函数

序号函数说明
1SUM(expression)返回指定字段的总和
2SQRT(x)返回x的平方根
3SIN(x)求正弦值(参数是弧度)
4SIGN(x)返回 x 的符号,x 是负数、0、正数分别返回 -1、0 和 1
5ROUND(x)返回离 x 最近的整数
6RAND()返回 0 到 1 的随机数
7RADIANS(x)将角度转换为弧度
8POWER(x,y)返回 x 的 y 次方
9POW(x,y)返回 x 的 y 次方
10PI()返回圆周率(3.141593)
11MOD(x,y)返回 x 除以 y 以后的余数
12MIN(expression)返回字段 expression 中的最小值
13MAX(expression)返回字段 expression 中的最大值
14LOG2(x)返回以 2 为底的对数
15LOG(x) 或 LOG(base, x)返回自然对数(以 e 为底的对数),如果带有 base 参数,则 base 为指定带底数。
16LN返回数字的自然对数,以 e 为底。
17LEAST(expr1, expr2, expr3, …)返回列表中的最小值
18GREATEST(expr1, expr2, expr3, …)返回列表中的最大值
19FLOOR(x)返回小于或等于 x 的最大整数
20EXP(x)返回 e 的 x 次方
21n DIV m整除,n 为被除数,m 为除数
22DEGREES(x)将弧度转换为角度
23COUNT(expression)返回查询的记录总数,expression 参数是一个字段或者 * 号
24COT(x)求余切值(参数是弧度)
25COS(x)求余弦值(参数是弧度)
26CEILING(x)返回大于或等于 x 的最小整数
27CEIL(x)返回大于或等于 x 的最小整数
28AVG(expression)返回一个表达式的平均值,expression 是一个字段
29ATAN(x)求反正切值(参数是弧度)
30ASIN(x)求反正弦值(参数是弧度)
31ACOS(x)求 x 的反余弦值(参数是弧度)
32ABS(x)返回 x 的绝对值
33TAN(x)求正切值(参数是弧度)
34TRUNCATE(x,y)返回数值 x 保留到小数点后 y 位的值(与 ROUND 最大的区别是不会进行四舍五入)

举例:CEIL(x)/CEILING(x) 返回大于或等于 x 的最小整数

SELECT CEIL(2.5);
SELECT CEILING(2.5);   

结果:

3


六、字符串函数

序号函数说明
1UPPER(s)将字符串转换为大写
2UCASE(s)将字符串转换为大写
3TRIM(s)去掉字符串 s 开始和结尾处的空格
4SUBSTRING_INDEX(s, delimiter, number)返回从字符串 s 的第 number 个出现的分隔符 delimiter 之后的子串。
如果 number 是正数,返回第 number 个字符左边的字符串。
如果 number 是负数,返回第(number 的绝对值(从右边数))个字符右边的字符串。
5SUBSTRING(s, start, length)从字符串 s 的 start 位置截取长度为 length 的子字符串
6SUBSTR(s, start, length)从字符串 s 的 start 位置截取长度为 length 的子字符串
7STRCMP(s1,s2)比较字符串 s1 和 s2,如果 s1 与 s2 相等返回 0 ,如果 s1>s2 返回 1,如果 s1<s2 返回 -1
8SPACE(n)返回 n 个空格
9RTRIM(s)去掉字符串 s 结尾处的空格
10RPAD(s1,len,s2)在字符串 s1 的结尾处添加字符串 s2,使字符串的长度达到 len
11RIGHT(s,n)返回字符串 s 的后 n 个字符
12REVERSE(s)将字符串s的顺序反过来
13REPLACE(s,s1,s2)将字符串 s2 替代字符串 s 中的字符串 s1
14REPEAT(s,n)将字符串 s 重复 n 次
15POSITION(s1 IN s)从字符串 s 中获取 s1 的开始位置
16MID(s,n,len)从字符串 s 的 n 位置截取长度为 len 的子字符串,同 SUBSTRING(s,n,len)
17LTRIM(s)去掉字符串 s 开始处的空格
18LPAD(s1,len,s2)在字符串 s1 的开始处填充字符串 s2,使字符串长度达到 len
19LOWER(s)将字符串 s 的所有字母变成小写字母
20LEFT(s,n)返回字符串 s 的前 n 个字符
21LCASE(s)将字符串 s 的所有字母变成小写字母
22LOCATE(s1,s)从字符串 s 中获取 s1 的开始位置
23INSERT(s1,x,len,s2)字符串 s2 替换 s1 的 x 位置开始长度为 len 的字符串
24FORMAT(x,n)函数可以将数字 x 进行格式化 “#,###.##”, 将 x 保留到小数点后 n 位,最后一位四舍五入。
25FIND_IN_SET(s1,s2)返回在字符串s2中与s1匹配的字符串的位置
26FIELD(s,s1,s2…)返回第一个字符串 s 在字符串列表(s1,s2…)中的位置
27CONCAT_WS(x, s1,s2…sn)同 CONCAT(s1,s2,…) 函数,但是每个字符串之间要加上 x,x 可以是分隔符
28CONCAT(s1,s2…sn)字符串 s1,s2 等多个字符串合并为一个字符串
29CHARACTER_LENGTH(s)返回字符串 s 的字符数
30CHAR_LENGTH(s)返回字符串 s 的字符数
31ASCII(s)返回字符串 s 的第一个字符的 ASCII 码。

举例:INSERT(s1,x,len,s2)字符串 s2 替换 s1 的 x 位置开始长度为 len 的字符串

SELECT INSERT("google.com", 1, 5, "baidu");

结果:

baidu


七、其他函数

序号函数说明
1USER()返回当前用户
2SESSION_USER()返回当前用户
3SYSTEM_USER()返回当前用户
4CURRENT_USER()返回当前用户
5VERSION()返回数据库的版本号
6DATABASE()返回当前数据库名
7COALESCE(expr1, expr2, …, expr_n)返回参数中的第一个非空表达式(从左向右)
8CONNECTION_ID()返回唯一的连接 ID
9CONV(x,f1,f2)返回 f1 进制数变成 f2 进制数
10CONVERT(s USING cs)函数将字符串 s 的字符集变成 cs
11CAST(x AS type)转换数据类型
12BINARY(s)将字符串 s 转换为二进制字符串
13BIN(x)返回 x 的二进制编码
14IF(expr,v1,v2)如果表达式 expr 成立,返回结果 v1;否则,返回结果 v2
15IFNULL(v1,v2)如果 v1 的值不为 NULL,则返回 v1,否则返回 v2。
16ISNULL(expression)判断表达式是否为 NULL
17LAST_INSERT_ID()返回最近生成的 AUTO_INCREMENT 值
18NULLIF(expr1, expr2)比较两个字符串,如果字符串 expr1 与 expr2 相等 返回 NULL,否则返回 expr1
19CASE expression
WHEN condition1 THEN
result1
WHEN condition2 THEN
result2
WHEN conditionN THEN
resultN
ELSE result
ENDCASE 表示函数开始,END 表示函数结束。
如果 condition1 成立,则返回 result1,
如果 condition2 成立,则返回 result2,
当全部不成立则返回 result,而当有一个成立之后,后面的就不执行了。

举例:CONV(x,f1,f2)返回 f1 进制数变成 f2 进制数

SELECT CONV(13,10,2);

结果:

1101


感谢你们的阅读和喜欢,我收藏了很多技术干货,可以共享给喜欢我文章的朋友们,如果你肯花时间沉下心去学习,它们一定能帮到你,干货内容包括:

在这里插入图片描述

今天的内容就分享到这里,如果你喜欢这篇文章的话,麻烦请动动你的手点个赞或者点个关注吧,这将是我最大的动力!谢谢,这里有我以前整理的大量自学资料 # 🐵需要的可以点这里自取👉:网安入门到进阶资源

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

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

相关文章

UltraEdit2024免费版文本编辑器

我们必须承认软件员使用的编辑器或代码编辑器是一款强大 IDE 的重要组成部分&#xff0c;它是任何 IDE 的核心基础。用户量向我们证明了UEStudio 基于著名的 UltraEdit 进行构建&#xff0c;同样&#xff0c;软件的主干非常成熟和稳定&#xff0c;并且已经被证实成为文本和软件…

Python 标准库 subprocess 模块详解

1. Subprocess模块介绍 1.1 基本功能 subprocess 模块&#xff0c;允许生成新的进程执行命令行指令&#xff0c;python程序&#xff0c;以及其它语言编写的应用程序, 如 java, c,rust 应用等。subprocess可连接多个进程的输入、输出、错误管道&#xff0c;并且获取它们的返回…

龙芯loongarch64服务器编译安装scipy

前言 根据我之前的文章介绍&#xff0c;龙芯loongarch64服务器中的很多python依赖包安装有问题&#xff0c;发现其中安装的"scikit-learn"就无法正常使用&#xff0c;所有这里在 pip3 install scikit-learn -U -i https://pypi.tuna.tsinghua.edu.cn/simple 的时候发…

酷开系统,让这个秋天更有温度

在这个秋意渐浓的季节&#xff0c;你是不是也在寻找一种方式&#xff0c;让这个秋天变得更加温暖和充满活力&#xff1f;随着科技的不断发展&#xff0c;智能电视已经成为家庭娱乐的重要载体&#xff0c;酷开系统&#xff0c;作为智能电视行业的佼佼者&#xff0c;不仅提供了海…

Linux常用命令——cal命令

在线Linux命令查询工具 cal 显示当前日历或指定日期的日历 补充说明 cal命令用于显示当前日历&#xff0c;或者指定日期的日历。 语法 cal(选项)(参数)选项 -l&#xff1a;显示单月输出&#xff1b; -3&#xff1a;显示临近三个月的日历&#xff1b; -s&#xff1a;将星…

client-go controller-runtime kubebuilder

背景 这半年一直做k8s相关的工作&#xff0c;一直接触client-go controller-runtime kubebuilder&#xff0c;但是很少有文章将这三个的区别说明白&#xff0c;直接用框架是简单&#xff0c;但是出了问题就是黑盒&#xff0c;这不符合我的理念&#xff0c;所以这篇文章从头说起…

【Java 进阶篇】Java Filter 过滤器链详解

过滤器&#xff08;Filter&#xff09;是 Java Web 应用中重要的组件之一&#xff0c;它用于在请求到达 Servlet 之前或响应返回客户端之前对请求和响应进行处理。在实际开发中&#xff0c;我们可能会使用多个过滤器来完成不同的任务&#xff0c;这就引出了过滤器链的概念。本文…

Qt 自定义分页控件

目录 前言1、功能描述2、代码实现2.1 ui文件2.1 头文件2.2 源码文件2.3 设计思路 4、示例5、总结 前言 在应用程序开发时经常会遇到数据分页的需求&#xff0c;每一页展示特定数量的数据&#xff0c;通过点击按钮翻页或者输入页码跳转到指定页。 本文介绍一个自定义分页控件&a…

【Spring】静态代理

例子&#xff1a; 租房子 角色&#xff1a; 我 &#xff08;I ) 中介( Proxy ) 房东( host ) Rent 接口 package org.example;public interface Rent {void rent(); }房东 package org.example;public class Host implements Rent{Overridepublic void rent() …

立体相机标定

相机成像过程中涉及的4个坐标系&#xff1a; 1、世界坐标系&#xff1a;由用户定义的三维世界坐标系&#xff0c;描述物体和相机在真实世界中的位置&#xff0c;原点可以任意选择。 2、相机坐标系&#xff1a;以相机的光心为坐标原点&#xff0c;X轴和Y轴平行于图像坐标系的X轴…

uniapp实现在线PDF文件预览

下载pdf文件放在static文件夹下 bug&#xff1a;hbuildX创建的项目pdf文件夹可以放在根目录下面&#xff0c;但是cli创建的项目无法预览&#xff0c;只能放在static下面 按钮跳转预览页面 <button click"toPdf">pdf</button>methods: {toPdf() {uni.…

接口测试|HttpRunner模拟发送GET请求自动生成测试报告

HttpRunner模拟发送GET请求&自动生成测试报告 前面说到&#xff0c;HttpRunner必须使用yaml或者json文件来进行使用&#xff0c;测试场景文件推荐使用yaml文件进行编辑。 httprunner 项目下yaml文件的格式 在python项目下新建一个 testcases 文件夹&#xff0c;然后再新…

K8s----资源管理

目录 一、Secret 1、创建 Secret 1.1 用kubectl create secret命令创建Secret 1.2 内容用 base64 编码&#xff0c;创建Secret 2、使用方式 2.1 将 Secret 挂载到 Volume 中&#xff0c;以 Volume 的形式挂载到 Pod 的某个目录下 2.2 将 Secret 导出到环境变量中 二、Co…

一文概览NLP句法分析:从理论到PyTorch实战解读

本文全面探讨了自然语言处理&#xff08;NLP&#xff09;中句法分析的理论与实践。从句法和语法的定义&#xff0c;到各类句法理论和方法&#xff0c;文章细致入微地解析了句法分析的多个维度。最后&#xff0c;通过PyTorch的实战演示&#xff0c;我们展示了如何将这些理论应用…

【C++】STL容器适配器——queue类的使用指南(含代码使用)(18)

前言 大家好吖&#xff0c;欢迎来到 YY 滴C系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; 目录 一、queue 类——基本介绍二、queue 类…

Milvus Cloud——Agent 框架工作方式

Agent 框架工作方式 我们以 AutoGPT 为例&#xff0c;看看一个 Agent 框架具体是如何工作的&#xff1a; AutoGPT[2] 使用 GPT-4 来生成任务、确定优先级并执行任务&#xff0c;同时使用插件进行互联网浏览和其他访问。AutoGPT 使用外部记忆来跟踪它正在做什么并提供上下文&am…

(免费领源码)Node.js#koa#MySQL精品课程网站27724-计算机毕业设计项目选题推荐

目 录 摘要 1 绪论 1.1研究背景 1.2研究现状及意义 1.3koa框架 1.4论文结构与章节安排 2精品课程网站系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1数据增加流程 2.3.2数据修改流程 2.3.3数据删除流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析…

如何捕捉牛熊转变的信号,澳福认为只需了解一个模式

在过去的交易市场&#xff0c;当所有的多头都买了&#xff0c;没有新的买家时&#xff0c;牛市就结束了。但是在今天的交易市场&#xff0c;激进的卖空者也会出现在趋势的顶部&#xff0c;澳福知道这个事实会改变重要趋势结束时的市场行为。当多头让位于空头时&#xff0c;牛市…

计蒜客详解合集(1)期

以后对于简单题目&#xff0c;大致6道题目出一期&#xff0c;稍有难度的才单独一期发布~ 目录 T1266——出勤记录 T1170——人民币支付 T1122——最长最短单词 T1115——字符串判等 T1116——验证子串 T1118——删除单词后缀 T1266——出勤记录 小蒜的算法课老师每次…

向量的范数、矩阵的范数

向量的范数 p-范数 常用的0-范数、1-范数、2-范数、无穷-范数其实都是p-范数的特殊情形。 0-范数 当p0时&#xff0c;表示0-范数。它比较特殊&#xff0c;本质是一种计数&#xff0c;表示向量中非0元素的个数。 1-范数&#xff08;也称L1范数&#xff09; 当p1时&#xff…