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智能助手:提升工作效率的秘密武器 在这个信息爆炸的时代,内容策略成为了品牌与用户之间沟通的重要桥梁。一个有效的内容策略能够帮助品牌提升知名度,建立与目标受众的深度连接,并最终实现转化目标。内容策略不仅涉及内容的创作与…...
vscode里如何用git
打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...
智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...
Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...
WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成
厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...
云原生安全实战:API网关Kong的鉴权与限流详解
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关(API Gateway) API网关是微服务架构中的核心组件,负责统一管理所有API的流量入口。它像一座…...
WebRTC从入门到实践 - 零基础教程
WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC? WebRTC(Web Real-Time Communication)是一个支持网页浏览器进行实时语音…...
go 里面的指针
指针 在 Go 中,指针(pointer)是一个变量的内存地址,就像 C 语言那样: a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10,通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...
