Mysql的库函数
MySQL是一个流行的开源关系型数据库管理系统,它提供了大量的内置库函数,用于在查询时执行各种操作。这些函数可以帮助开发者在数据检索、转换和处理过程中实现更复杂的逻辑。
1 字符串函数
| 函数 | 描述 |
|---|---|
| ASCII(s) | 返回字符串 s 的第一个字符的 ASCII 码。 |
| CHAR_LENGTH(s) | 返回字符串 s 的字符数 |
| CONCAT(s1,s2…sn) | 字符串 s1,s2 等多个字符串合并为一个字符串 |
| CONCAT_WS(x, s1,s2…sn) | 同 CONCAT(s1,s2,…) 函数,但是每个字符串之间要加上 x,x 可以是分隔符 |
| FIELD(s,s1,s2…) | 返回第一个字符串 s 在字符串列表(s1,s2…)中的位置 |
| FIND_IN_SET(s1,s2) | 返回在字符串s2中与s1匹配的字符串的位置 |
| INSERT(s1,x,len,s2) | 字符串 s2 替换 s1 的 x 位置开始长度为 len 的字符串 |
| LOCATE(s1,s) | 从字符串 s 中获取 s1 的开始位置 |
| LCASE(s) | 将字符串 s 的所有字母变成小写字母 |
| LEFT(s,n) | 返回字符串 s 的前 n 个字符 |
| LOWER(s) | 将字符串 s 的所有字母变成小写字母 |
| LPAD(s1,len,s2) | 在字符串 s1 的开始处填充字符串 s2,使字符串长度达到 len |
| LTRIM(s) | 去掉字符串 s 开始处的空格 |
| MID(s,n,len) | 从字符串 s 的 n 位置截取长度为 len 的子字符串,同 SUBSTRING(s,n,len) |
| POSITION(s1 IN s) | 从字符串 s 中获取 s1 的开始位置 |
| REPEAT(s,n) | 将字符串 s 重复 n 次 |
| REPLACE(s,s1,s2) | 将字符串 s2 替代字符串 s 中的字符串 s1 |
| REVERSE(s) | 将字符串s的顺序反过来 |
| RIGHT(s,n) | 返回字符串 s 的后 n 个字符 |
| RPAD(s1,len,s2) | 在字符串 s1 的结尾处添加字符串 s2,使字符串的长度达到 len |
| RTRIM(s) | 去掉字符串 s 结尾处的空格 |
| SPACE(n) | 返回 n 个空格 |
| STRCMP(s1,s2) | 比较字符串 s1 和 s2,如果 s1 与 s2 相等返回 0 ,如果 s1>s2 返回 1,如果 s1<s2 返回 -1 |
| SUBSTR(s, start, length) | 从字符串 s 的 start 位置截取长度为 length 的子字符串 |
| SUBSTRING(s, start, length) | 从字符串 s 的 start 位置截取长度为 length 的子字符串,等同于 SUBSTR(s, start, length) |
| SUBSTRING_INDEX(s, delimiter, number) | 返回从字符串 s 的第 number 个出现的分隔符 delimiter 之后的子串。 如果 number 是正数,返回第 number 个字符左边的字符串。 如果 number 是负数,返回第(number 的绝对值(从右边数))个字符右边的字符串。 |
| TRIM(s) | 去掉字符串 s 开始和结尾处的空格 |
| UCASE(s) | 将字符串转换为大写 |
| UPPER(s) | 将字符串转换为大写 |
2 数字函数
| 函数名 | 描述 |
|---|---|
| ABS(x) | 返回 x 的绝对值 |
| ACOS(x) | 求 x 的反余弦值(单位为弧度),x 为一个数值 |
| ASIN(x) | 求反正弦值(单位为弧度),x 为一个数值 |
| ATAN(x) | 求反正切值(单位为弧度),x 为一个数值 |
| ATAN2(n, m) | 求反正切值(单位为弧度) |
| AVG(expression) | 返回一个表达式的平均值,expression 是一个字段 |
| CEIL(x) | 返回大于或等于 x 的最小整数 |
| CEILING(x) | 返回大于或等于 x 的最小整数 |
| COS(x) | 求余弦值(参数是弧度) |
| COT(x) | 求余切值(参数是弧度) |
| COUNT(expression) | 返回查询的记录总数,expression 参数是一个字段或者 * 号 |
| DEGREES(x) | 将弧度转换为角度 |
| n DIV m | 整除,n 为被除数,m 为除数 |
| EXP(x) | 返回 e 的 x 次方 |
| FLOOR(x) | 返回小于或等于 x 的最大整数 |
| GREATEST(expr1, expr2, expr3, …) | 返回列表中的最大值 |
| LEAST(expr1, expr2, expr3, …) | 返回列表中的最小值 |
| LN | 返回数字的自然对数,以 e 为底。 |
| LOG(x) 或 LOG(base, x) | 返回自然对数(以 e 为底的对数),如果带有 base 参数,则 base 为指定带底数。 |
| LOG10(x) | 返回以 10 为底的对数 |
| LOG2(x) | 返回以 2 为底的对数 |
| MAX(expression) | 返回字段 expression 中的最大值 |
| MIN(expression) | 返回字段 expression 中的最小值 |
| MOD(x,y) | 返回 x 除以 y 以后的余数 |
| PI() | 返回圆周率(3.141593) |
| POW(x,y) | 返回 x 的 y 次方 |
| POWER(x,y) | 返回 x 的 y 次方 |
| RADIANS(x) | 将角度转换为弧度 |
| RAND() | 返回 0 到 1 的随机数 |
| ROUND(x [,y]) | 返回离 x 最近的整数,可选参数 y 表示要四舍五入的小数位数,如果省略,则返回整数。 |
| SIGN(x) | 返回 x 的符号,x 是负数、0、正数分别返回 -1、0 和 1 |
| SIN(x) | 求正弦值(参数是弧度) |
| SQRT(x) | 返回x的平方根 |
| SUM(expression) | 返回指定字段的总和 |
| TAN(x) | 求正切值(参数是弧度) |
| TRUNCATE(x,y) | 返回数值 x 保留到小数点后 y 位的值(与 ROUND 最大的区别是不会进行四舍五入) |
3 日期函数
| 函数名 | 描述 |
|---|---|
| ADDDATE(d,n) | 计算起始日期 d 加上 n 天的日期 |
| ADDTIME(t,n) | n 是一个时间表达式,时间 t 加上时间表达式 n |
| CURDATE() | 返回当前日期 |
| CURRENT_DATE() | 返回当前日期 |
| CURRENT_TIME | 返回当前时间 |
| CURRENT_TIMESTAMP() | 返回当前日期和时间 |
| CURTIME() | 返回当前时间 |
| DATE() | 从日期或日期时间表达式中提取日期值 |
| DATEDIFF(d1,d2) | 计算日期 d1->d2 之间相隔的天数 |
| DATE_ADD(d,INTERVAL expr type) | 计算起始日期 d 加上一个时间段后的日期,type 值可以是: MICROSECOND SECOND MINUTE HOUR DAY WEEK MONTH QUARTER YEAR SECOND_MICROSECOND MINUTE_MICROSECOND MINUTE_SECOND HOUR_MICROSECOND HOUR_SECOND HOUR_MINUTE DAY_MICROSECOND DAY_SECOND DAY_MINUTE DAY_HOUR YEAR_MONTH |
| DATE_FORMAT(d,f) | 按表达式 f的要求显示日期 d |
| DATE_SUB(date,INTERVAL expr type) | 函数从日期减去指定的时间间隔。 |
| DAY(d) | 返回日期值 d 的日期部分 |
| DAYNAME(d) | 返回日期 d 是星期几,如 Monday,Tuesday |
| DAYOFMONTH(d) | 计算日期 d 是本月的第几天 |
| DAYOFWEEK(d) | 日期 d 今天是星期几,1 星期日,2 星期一,以此类推 |
| DAYOFYEAR(d) | 计算日期 d 是本年的第几天 |
| EXTRACT(type FROM d) | 从日期 d 中获取指定的值,type 指定返回的值。 type可取值为: MICROSECOND SECOND MINUTE HOUR DAY WEEK MONTH QUARTER YEAR SECOND_MICROSECOND MINUTE_MICROSECOND MINUTE_SECOND HOUR_MICROSECOND HOUR_SECOND HOUR_MINUTE DAY_MICROSECOND DAY_SECOND DAY_MINUTE DAY_HOUR YEAR_MONTH |
| FROM_DAYS(n) | 计算从 0000 年 1 月 1 日开始 n 天后的日期 |
| HOUR(t) | 返回 t 中的小时值 |
| LAST_DAY(d) | 返回给给定日期的那一月份的最后一天 |
| LOCALTIME() | 返回当前日期和时间 |
| LOCALTIMESTAMP() | 返回当前日期和时间 |
| MAKEDATE(year, day-of-year) | 基于给定参数年份 year 和所在年中的天数序号 day-of-year 返回一个日期 |
| MAKETIME(hour, minute, second) | 组合时间,参数分别为小时、分钟、秒 |
| MICROSECOND(date) | 返回日期参数所对应的微秒数 |
| MINUTE(t) | 返回 t 中的分钟值 |
| MONTHNAME(d) | 返回日期当中的月份名称,如 November |
| MONTH(d) | 返回日期d中的月份值,1 到 12 |
| NOW() | 返回当前日期和时间 |
| PERIOD_ADD(period, number) | 为 年-月 组合日期添加一个时段 |
| PERIOD_DIFF(period1, period2) | 返回两个时段之间的月份差值 |
| QUARTER(d) | 返回日期d是第几季节,返回 1 到 4 |
| SECOND(t) | 返回 t 中的秒钟值 |
| SEC_TO_TIME(s) | 将以秒为单位的时间 s 转换为时分秒的格式 |
| STR_TO_DATE(string, format_mask) | 将字符串转变为日期 |
| SUBDATE(d,n) | 日期 d 减去 n 天后的日期 |
| SUBTIME(t,n) | 时间 t 减去 n 秒的时间 |
| SYSDATE() | 返回当前日期和时间 |
| TIME(expression) | 提取传入表达式的时间部分 |
| TIME_FORMAT(t,f) | 按表达式 f 的要求显示时间 t |
| TIME_TO_SEC(t) | 将时间 t 转换为秒 |
| TIMEDIFF(time1, time2) | 计算时间差值 |
| TIMESTAMP(expression, interval) | 单个参数时,函数返回日期或日期时间表达式;有2个参数时,将参数加和 |
| TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2) | 计算时间差,返回 datetime_expr2 − datetime_expr1 的时间差 |
| TO_DAYS(d) | 计算日期 d 距离 0000 年 1 月 1 日的天数 |
| WEEK(d) | 计算日期 d 是本年的第几个星期,范围是 0 到 53 |
| WEEKDAY(d) | 日期 d 是星期几,0 表示星期一,1 表示星期二 |
| WEEKOFYEAR(d) | 计算日期 d 是本年的第几个星期,范围是 0 到 53 |
| YEAR(d) | 返回年份 |
| YEARWEEK(date, mode) | 返回年份及第几周(0到53),mode 中 0 表示周天,1表示周一,以此类推 |
4 聚合函数
聚合函数需要配合MySQL的分组查询使用
| 函数名 | 描述 |
|---|---|
| max(column) | 查询指定字段值中的最大值。 |
| min(column) | 查询指定字段值中的最小值。 |
| count(column) | 统计查询结果中的行数。 |
| sum(column) | 求和指定字段的所有值。 |
| avg(column) | 对指定字段的所有值,求出平均值。 |
| group_concat(column) | 返回指定字段所有值组合成的结果 |
| distinct(column) | 对于查询结果中的指定的字段去重。 |
5 控制流程函数
跟其他语言的控制流程类型,成立走这个分支,不成立走其他的分支
| 函数名 | 描述 |
|---|---|
| if(expr,r1,r2) | expr是表达式,如果成立返回r1,否则返回r2 |
| ifnull(v,r) | 如果v不为null则返回v,否则返回r。 |
| nullif(v1,v2) | 如果v1 == v2,则返回null,如果不相等则返回V1 |
6 加密函数
MySQL自带了对密码进行加密的函数,支持多种对称加密和非对称加密的方式
| 函数名 | 描述 |
|---|---|
| password(str) | 将str字符串以数据库密码的形式加密 |
| md5(str) | 对str字符串以MD5不可逆算法模式加密 |
| encode(str,key) | 通过key密钥对str字符串进行加密(对称加密算法)。 |
| decode(str,key) | 通过key密钥对str字符串进行解密。 |
| aes_encrypt(str,key) | 通过key密钥对str字符串,以AES算法进行加密。 |
| aes_decrypt(str,key) | 通过key密钥对str字符串,以AES算法进行解密。 |
| sha(str) | 计算str字符串的散列算法校验值。 |
| encrypt(str,salt) | 使用salt盐值对str字符串进行加密。 |
| decrypt(str,salt) | 使用salt盐值对str字符串进行解密。 |
相关文章:
Mysql的库函数
MySQL是一个流行的开源关系型数据库管理系统,它提供了大量的内置库函数,用于在查询时执行各种操作。这些函数可以帮助开发者在数据检索、转换和处理过程中实现更复杂的逻辑。 1 字符串函数 函数描述ASCII(s)返回字符串 s 的第一个字符的 ASCII 码。CHA…...
绿联 安装onlyoffice容器并启用Cloudreve的office在线预览与编辑功能
原文:绿联 安装onlyoffice容器并启用Cloudreve的office在线预览与编辑功能 本篇教程以配合Cloudreve扩展文档预览/编辑为目的编写,OnlyOffice的其他用途未深入研究也不做探讨,仅使用WOPI能力。 硬件要求 镜像大小:2.91Gb或更大 …...
金钱卦起卦
前言 本文目的: 1.了解什么是《易经》 2.了解什么是八卦/六十四卦 3.金钱卦起卦方法 4.如何解卦 一、什么是易经? 1、易经就是一本书、一本著作 2、它的成书经历了三个阶段 第一阶段:在5000多年前,由人类的始祖伏羲通过观察时…...
学透Spring Boot 003 —— Spring 和 Spring Boot 常用注解(附面试题和思维导图)
这是 学透 Spring Boot 专栏 的第三篇,欢迎关注我,与我一起学习和探讨 Spring Boot 相关知识,学透 Spring Boot。 从面试题说起 今天我们通过一道和Spring Boot有关的常见面试题入手。 面试题:说说 Spring Boot 中有哪些常用注解…...
新能源汽车充电桩常见类型及充电桩站场的智能监管方案
随着新能源汽车市场的迅猛发展,充电桩作为支持其运行的基础设施,也呈现出多样化的类型。这些充电桩不仅在外形和功能上存在差异,更在充电速度、充电方式以及使用场景等方面展现出独特的优势。 一、充电桩类型及区别 1、慢充桩(交…...
让工作自动化起来!无所不能的Python
文章目录 前言一、Python是办公自动化的重要工具二、Python是提升职场竞争力的利器三、Python是企业数字化的重要平台四、Python是AI发展的重要通道之一编辑推荐内容简介作者简介目录前言为什么要写这本书 读者对象如何阅读本书赠书活动 前言 随着我国企业数字化和信息化的深入…...
Facebook轮播广告是什么?投放过程中有哪些需要注意的吗?
轮播广告是Facebook广告形式中的一种,可以把3—5个广告合并到一个可滚动的广告单元中。轮播广告会出现在新鲜事即News Feed中,是独立站卖家常用的一种广告形式 为什么选择轮播广告? 转化率更高:相较于单图广告,轮播广…...
3、jvm基础知识(三)
如何判断堆上的对象没有被引用? 常见的有两种判断方法:引用计数法和可达性分析法。 引用计数法会为每个对象维护一个引用计数器,当对象被引用时加1,取消引用时减1。 引用计数法的优点是实现简单,缺点有两点࿱…...
leetcode414-Third Maximum Number
这道题目求第三大数,如果第三大数不存在则返回最大数,且该数字最大值不超过2^31-1。从这个提示上就可以看出这个数字是用int类型表示的。我们当然可以通过排序的方式先给数组排序然后很容易的就能求解。但是有没有什么更好的办法呢?对于数组来…...
解决Quartus与modelsim联合仿真问题:# Error loading design解决,是tb文件中没加:`timescale 1ns/1ns
解决Quartus与modelsim联合仿真问题:# Error loading design解决,是tb文件中没加:timescale 1,一直走下来,在modelsim中出现了下面问题2,rtl文件、tb文件2.1,rtl代码2.2,tb测试2.3&a…...
vue使用elementui组件的的对话框;使用ref
1.第一步,先在父组件中引用,设置ref的值 <el-dialog :visible.sync"dialogEditVisible"append-to-body width"1000px" title"编辑":close-on-click-modal"false"><dialog-edit v-if"dialogEditV…...
第十四届蓝桥杯(八题C++ 题目+代码+注解)
目录 题目一(日期统计 纯暴力): 代码: 题目二(01串的熵 模拟): 代码: 题目三(治炼金属): 代码: 题目四(飞机降落 深度…...
HTTP协议格式详解之报头(HTTP header)、请求正文(body)
在之前文章中我们已经介绍了HTTP的首行信息,HTTP协议格式详解之首行信息解析-CSDN博客这篇文章中我们继续介绍HTTP协议的报头部分。 一、报头(HTTP header) a)请求头部(Request Headers): Host:指定服务器…...
[yolox]ubuntu上部署yolox的ncnn模型
首先转换pytorch->onnx->param模型,这个过程可以查资料步骤有点多,参考blog.51cto.com/u_15660370/6408303,这里重点讲解转换后部署。 测试环境: ubuntu18.04 opencv3.4.4(编译过程省略,参考我其他博客) 安装…...
YOLOv9改进策略 :IoU优化 | 提出一种新的Shape IoU,更加关注边界框本身的形状和尺度,对小目标检测也很友好
💡💡💡本文改进:一种新的Shape IoU方法,该方法可以通过关注边界框本身的形状和尺度来计算损失,解决边界盒的形状和规模等固有属性对边界盒回归的影响。 💡💡💡对小目标检测涨点明显,在VisDrone2019、PASCAL VOC均有涨点 《YOLOv9魔术师专栏》将从以下各个方向进…...
如何使用KST指标进行多头交易,Anzo Capital一个条件设置
在之前的文章中,我们进行分享了以下知识:什么是KST指标,以及如何进行计算KST指标。有聪明的投资者就在后台进行咨询Anzo Capital昂首资本了,我们知道这些知识有什么用呢? 当然有用了,只要理解背后的逻辑知…...
【QT进阶】第十三章QT动画类的使用QAbstractAnimation
❤️作者主页:凉开水白菜 ❤️作者简介:共同学习,互相监督,热于分享,多加讨论,一起进步! ❤️专栏目录:【零基础学QT】文章导航篇 ❤️专栏资料:https://pan.baidu.com/s/192A28BTIYFHmixRcQwmaHw 提取码:qtqt ❤️点赞 👍 收藏 ⭐再看,养成习惯 订阅的粉丝可通过…...
【机器学习】揭秘无监督学习:机器如何自我学习发现数据奥秘
无监督学习:全面解析 引言 在机器学习的众多分支中,无监督学习因其在未标记数据上发现隐藏模式的能力而独树一帜。它不依赖于事先标记的输出,而是通过分析数据本身的结构和分布来揭示内在的关系和分类。本文深入探讨无监督学习的核心概念、…...
鸿蒙(HarmonyOS)ArkTs语言基础教程(大纲)
鸿蒙(HarmonyOS)ArkTs语言基础教程 简介 ArkTS 是鸿蒙生态的应用开发语言。它在保持 TypeScript(简称 TS)基本语法风格的基础上,对 TS 的动态类型特性施加更严格的约束,引入静态类型。同时,提…...
掌握未来商机:如何利用会话式AI赢在起跑线
AI智能助手:提升工作效率的秘密武器 在这个信息爆炸的时代,内容策略成为了品牌与用户之间沟通的重要桥梁。一个有效的内容策略能够帮助品牌提升知名度,建立与目标受众的深度连接,并最终实现转化目标。内容策略不仅涉及内容的创作与…...
Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...
多模态2025:技术路线“神仙打架”,视频生成冲上云霄
文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...
基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...
【Linux】Linux 系统默认的目录及作用说明
博主介绍:✌全网粉丝23W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...
基于Java+VUE+MariaDB实现(Web)仿小米商城
仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意:运行前…...
c# 局部函数 定义、功能与示例
C# 局部函数:定义、功能与示例 1. 定义与功能 局部函数(Local Function)是嵌套在另一个方法内部的私有方法,仅在包含它的方法内可见。 • 作用:封装仅用于当前方法的逻辑,避免污染类作用域,提升…...
MySQL体系架构解析(三):MySQL目录与启动配置全解析
MySQL中的目录和文件 bin目录 在 MySQL 的安装目录下有一个特别重要的 bin 目录,这个目录下存放着许多可执行文件。与其他系统的可执行文件类似,这些可执行文件都是与服务器和客户端程序相关的。 启动MySQL服务器程序 在 UNIX 系统中,用…...
