二、mysql常用函数
目录
一、Mysql数值型函数
二、Mysql字符串函数
三、Mysql日期和时间函数
四、Mysql聚合函数
五、Mysql流程控制函数
六、其他函数
一、Mysql数值型函数
| 函数名称 | 作用 |
| abc | 求绝对值 |
| sqrt | 求二次方根 |
| mod | 求余数 |
| ceil 和 ceiling | 功能一样,都是返回不小于参数的最小整数,即向上取整 |
| floor | 向下取整,返回值转化为一个bigint |
| rand | 生成一个0~1之间的随机数,传入整数参数是用来重复序列 |
| round | 对所参数进行四舍五入 |
| sign | 返回参数的符号 |
| pow 和 power | 功能一样,都是输出所传参数的次方的结果值 |
| sin | 求正弦值 |
| asin | 求反正弦值,与函数sin互为反函数 |
| cos | 求余弦值 |
| acos | 求反余弦值,与函数cos互为反函数 |
| tan | 求正切值 |
| atan | 求反正切值,与函数tan互为反函数 |
| cot | 求余切值 |
1、abs()求绝对值(root@localhost) [(none)]> select abs(5),abs(-2.4);+--------+-----------+| abs(5) | abs(-2.4) |+--------+-----------+| 5 | 2.4 |+--------+-----------+
2、sqrt() 求二次方根
(root@localhost) [(none)]> select sqrt(25),sqrt(120),sqrt(-9);
+----------+--------------------+----------+
| sqrt(25) | sqrt(120) | sqrt(-9) |
+----------+--------------------+----------+
| 5 | 10.954451150103322 | NULL |
+----------+--------------------+----------+
3、 mod()求余数
函数mod(x,y)返回x被y除后的余数
(root@localhost) [(none)]> select mod(65,8),mod(120,20);
+-----------+-------------+
| mod(65,8) | mod(120,20) |
+-----------+-------------+
| 1 | 0 |
+-----------+-------------+
二、Mysql字符串函数
| 函数名称 | 作用 |
| length | 计算字符串长度函数,返回字符串的字节长度 |
| concat | 合并字符串函数,返回结果为连接参数产生的字符串,参数可以是一个或多个 |
| insert | 替换字符串函数 |
| lower | 将字符串中的字母转换为小写 |
| upper | 将字符串中的字母转换为大写 |
| left | 从左侧截取字符串,返回字符串左边的若干字符 |
| right | 从右侧截取字符串,返回字符串右边的若干字符 |
| trim | 删除字符串左右两侧的空格 |
| replace | 字符串替换函数,返回替换后的新字符串 |
| substr 和substring | 截取字符串,返回从指定位置开始的指定长度的字符串 |
| reverse | 字符串反转(逆序)函数,返回与原始字符串顺序相反的字符串 |
| substring_index() | 获取字符串左边或者右边的字符 |
1、length() :返回字符串的长度。一个汉字是3个字节,一个数字或字母是一个字节
(root@localhost) [(none)]> select length("asdcfa"),length("我爱你123");
+------------------+------------------------+
| length("asdcfa") | length("我爱你123") |
+------------------+------------------------+
| 6 | 12 |
+------------------+------------------------+2、concat(s1,s2,s3...):合并字符串若有任何一个连接参数为null,则返回值为null;(root@localhost) [(none)]> select concat("我爱你","123");
+---------------------------+
| concat("我爱你","123") |
+---------------------------+
| 我爱你123 |
+---------------------------+3、substring_index(str, delim, count)
str:处理的字符串delim:分隔符count:计数
如果count是正数,那么就是从左往右数,第N个分隔符左边的全部内容,不包括该分隔符;
相反,如果是负数,那么就是从右往左数,第N个分隔符右边的所有内容,当然也不包括该分隔符。
(root@localhost) [test]> SELECT CONCAT(SUBSTRING_INDEX('四川省成都市高新区吉龙一街188号1栋2单元3楼4号','号',1),'号');
+-----------------------------------------------------------------------------------------------------------+
| CONCAT(SUBSTRING_INDEX('四川省成都市高新区吉龙一街188号1栋2单元3楼4号','号',1),'号') |
+-----------------------------------------------------------------------------------------------------------+
| 四川省成都市高新区吉龙一街188号 |
+-----------------------------------------------------------------------------------------------------------+
(root@localhost) [test]> SELECT CONCAT(SUBSTRING_INDEX(SUBSTRING_INDEX('四川省成都市高新区吉龙一街188号1栋2单元3楼4号','高新区',-1),'号',1),'号') asd;
+--------------------+
| asd |
+--------------------+
| 吉龙一街188号 |
+--------------------+
1 row in set (0.00 sec)4、left():语法:LEFT(string, number_of_chars)string: 需要提取字符的原始字符串。number_of_chars: 需要从字符串左侧提取的字符数。如果你有一个包含税号的字段,并且你想提取名字的前4个字符,你可以这样使用 LEFT() 函数:select LEFT (nsrsbh, 4) = '9151' as "四川省"
5、right() :从右侧截取,意义同上
三、Mysql日期和时间函数
| 函数名称 | 作用 |
| curdate 和 current_date | 作用相同,返回当前系统的日期值,不包含时间部分 |
| curtime 和 current_time | 作用相同,返回当前系统的时间值 |
| now 和 sysdate | 作用相同,返回当前系统的日期值和时间值 |
| unix_timestamp | 获取unix时间戳函数,返回一个以unix时间戳为基础的无符号整数 |
| from_unixtime | 将unix时间戳转换为时间格式,与unix_timestamp互为反函数 |
| day | 获取指定日期中的日期 |
| dayname | 获取指定日期中对应的星期几的英文名称 |
| month | 获取指定日期中的月份 |
| monthname | 获取指定日期中的月份英文名称 |
| year | 获取指定日期中的年份,范围1970 ~ 2069 |
| dayofweek | 获取指定日期是一周中的第几天,返回值范围是1~7,1=周日 |
| dayofmonth | 获取指定日期是一月中的第几天,返回值范围是1~31 |
| dayofyear | 获取指定日期是一年中的第几天,返回值范围是1~366 |
| week | 获取指定日期是一年中的第几周,返回值的范围是0 ~ 52或1 ~ 53 |
| time_to_sec | 将时间参数转换为秒数 |
| sec_to_time | 将秒数转换为时间,与time_to_sec互为反函数 |
| date_add 和 adddate | 用于给日期或时间值添加指定的时间间隔 |
| date_sub 和 subdate | 用于从日期或时间值中减去指定的时间间隔 |
| addtime | 时间加法运算,在原始时间上添加指定的时间 |
| subtime | 时间减法运算,在原始时间上减去指定的时间 |
| datediff | 获取两个日期之间间隔,返回参数1减去参数2的值 |
| date_format | 格式化指定日期,根据参数返回指定格式的值 |
| weekday | 获取指定日期在一周内的对应的工作索引 |
| LAST_DAY(DATE) | 返回指定日期所在月份的最后一天 |
1、curdate 和 current_date:返回当前系统的日期值
(root@localhost) [(none)]> select curdate(),current_date();
+------------+----------------+
| curdate() | current_date() |
+------------+----------------+
| 2023-10-10 | 2023-10-10 |
+------------+----------------+2、curtime 和 current_time:返回当前系统的时间值
(root@localhost) [(none)]> select curtime(),current_time();
+-----------+----------------+
| curtime() | current_time() |
+-----------+----------------+
| 09:53:05 | 09:53:05 |
+-----------+----------------+3、now 和 sysdate:获取当前系统时间日期
(root@localhost) [(none)]> select now(),sysdate();
+---------------------+---------------------+
| now() | sysdate() |
+---------------------+---------------------+
| 2023-10-10 09:53:35 | 2023-10-10 09:53:35 |
+---------------------+---------------------+4、month:获取指定日期的月份
(root@localhost) [(none)]> select month(now());
+--------------+
| month(now()) |
+--------------+
| 10 |
+--------------+5、date_format:格式化指定的日期
(root@localhost) [(none)]> select date_format('2023-10-10','%Y%m%d'),date_format(now(),'%Y-%m-%d');
+------------------------------------+-------------------------------+
| date_format('2023-10-10','%Y%m%d') | date_format(now(),'%Y-%m-%d') |
+------------------------------------+-------------------------------+
| 20231010 | 2023-10-10 |
+------------------------------------+-------------------------------+6、date_add()函数:语法: `date_add(date, INTERVAL expr unit)` 参数: + `date`: 要添加时间间隔的日期或时间值。 + `expr`: 要添加的值。 + `unit`: 时间间隔的单位(例如,年、月、日、小时等)。示例:如果你想将当前日期加上 5 天,你可以使用以下查询:SELECT date_add(NOW(), INTERVAL 5 DAY);7、date_sub()函数:* 语法: `date_sub(date, INTERVAL expr unit)` * 参数: + `date`: 要减去时间间隔的日期或时间值。 + `expr`: 要减去的值。 + `unit`: 时间间隔的单位(例如,年、月、日、小时等)。示例:如果你想从当前日期减去 2 小时,你可以使用以下查询:SELECT date_sub(NOW(), INTERVAL 2 HOUR);其中 unit 参数常用的有:* 年(YEAR) * 月(MONTH) * 日(DAY) * 小时(HOUR) * 分钟(MINUTE) * 秒(SECOND) * 周(WEEK)8、获取今天的时间
SELECT DATE_FORMAT(NOW(),'%Y-%m-%d 00:00:00') AS '今天开始';
SELECT DATE_FORMAT(NOW(),'%Y-%m-%d 23:59:59') AS '今天结束';9、获取昨天的时间
SELECT DATE_FORMAT( DATE_SUB(CURDATE(), INTERVAL 1 DAY), '%Y-%m-%d 00:00:00') AS '昨天开始';
SELECT DATE_FORMAT( DATE_SUB(CURDATE(), INTERVAL 1 DAY), '%Y-%m-%d 23:59:59') AS '昨天结束';10、获取本周的时间
SELECT DATE_FORMAT( DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) DAY), '%Y-%m-%d 00:00:00') AS '本周一';
SELECT DATE_FORMAT( DATE_ADD(SUBDATE(CURDATE(), WEEKDAY(CURDATE())), INTERVAL 6 DAY), '%Y-%m-%d 23:59:59') AS '本周末';11、获取上周时间
SELECT DATE_FORMAT( DATE_SUB( DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) DAY), INTERVAL 1 WEEK), '%Y-%m-%d 00:00:00') AS '上周一';
SELECT DATE_FORMAT( SUBDATE(CURDATE(), WEEKDAY(CURDATE()) + 1), '%Y-%m-%d 23:59:59') AS '上周末';12、获取本月时间
SELECT DATE_FORMAT( CURDATE(), '%Y-%m-01 00:00:00') AS '本月初';
SELECT DATE_FORMAT( LAST_DAY(CURDATE()), '%Y-%m-%d 23:59:59') AS '本月末';13、获取上个月的时间
AND kprq >= DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH), '%Y-%m-01 00:00:00')
AND kprq <= DATE_FORMAT(LAST_DAY(DATE_SUB(CURDATE(), INTERVAL 1 MONTH)), '%Y-%m-%d 23:59:59')
四、Mysql聚合函数
| 函数名称 | 作用 |
| max | 查询指定列的最大值 |
| min | 查询指定列的最小值 |
| count | 统计查询结果的行数 |
| sum | 求和,返回指定列的总和 |
| avg | 求平均值,返回指定列数据的平均值 |
五、Mysql流程控制函数
| 函数名称 | 作用 |
| if | 判断,流程控制 |
| ifnull | 判断是否为空 |
| case | 搜索语句 |
1、if:判断
if(expr,v1,v2)函数,当expr为真时,返回v1,否则返回v2。
(root@localhost) [(none)]> select if(1>2,'对','错');
+---------------------+
| if(1>2,'对','错') |
+---------------------+
| 错 |
+---------------------+2、ifnull:判断是否为空
ifnull(v1,v2):v1为空返回v2,否则返回v1。
(root@localhost) [(none)]> select ifnull(null,'gaga'),ifnull('123','gaga');
+---------------------+----------------------+
| ifnull(null,'gaga') | ifnull('123','gaga') |
+---------------------+----------------------+
| gaga | 123 |
+---------------------+----------------------+3、case:搜索语句,类似于java中的if…else if…else
类似java中的if…else if…else。有两种写法
(1)方式 1case <表达式>when <值1> then <操作>when <值2> then <操作>...else <操作>end case;(2)方式 2casewhen <条件1> then <命令>when <条件2> then <命令>...else 命令end case;示例:
create table t_stu(id int not null primary key auto_increment comment '编号',name varchar(10) not null default '' comment '姓名',sex tinyint not null comment '性别,0:未知,1:男,2:女'
) comment '学生表';
insert into t_stu(name,sex) values('张学友',1),('刘德华',1),('郭富城',1),('蔡依林',2),('xxx',0);
需求:查询所有学生信息,输出:姓名,性别(男、女、未知)
(root@localhost) [test]> select t.name 姓名,-> (case t.sex-> when 1-> then '男'-> when 2-> then '女'-> else '未知' end-> )性别-> from t_stu t;
(root@localhost) [test]> select t.name 姓名, (case when t.sex=1 then '男' when t.sex=2 then '女' else '未知' end) 性别 from t_stu t;
+-----------+--------+
| 姓名 | 性别 |
+-----------+--------+
| 张学友 | 男 |
| 刘德华 | 男 |
| 郭富城 | 男 |
| 蔡依林 | 女 |
| xxx | 未知 |
+-----------+--------+
六、其他函数
| 函数名称 | 作用 |
| version | 数据库版本号 |
| database | 当前的数据库 |
| user | 当前连接用户 |
| password | 返回字符串密码 |
| md5 | 返回字符串的md5数据 |
(root@localhost) [test]> select version();
+-----------+
| version() |
+-----------+
| 8.0.16 |
+-----------+
相关文章:
二、mysql常用函数
目录 一、Mysql数值型函数 二、Mysql字符串函数 三、Mysql日期和时间函数 四、Mysql聚合函数 五、Mysql流程控制函数 六、其他函数 一、Mysql数值型函数 函数名称 作用 abc 求绝对值 sqrt 求二次方根 mod 求余数 ceil 和 ceiling 功能一样,都是返回不小…...
【Redis | 第一篇】快速了解Redis
文章目录 1.快速了解Redis1.1简介1.2与其他key-value存储的不同处1.3Redis安装——Windows环境1.3.1下载redis1.3.2启动redis1.3.3进入redis客户端1.3.4修改配置 1.4Redis安装——Linux环境1.4.1安装命令1.4.2启动redis1.4.3进入redis客户端 1.5配置修改1.6小结 1.快速了解Redi…...
Vim 模式切换 | 命令集
Vim 模式切换 | 命令集 vim 主要模式及切换一、正常/普通/命令模式1 光标相关操作命令集1.1 光标移动1.2 文字删除1.3 粘贴和复制1.4 撤销1.5 字符更改 二、插入模式2.1 插入模式和命令行模式相互切换 三、末行模式2.1 末行模式和命令行模式相互切换2.2 末行模式相关命令集 四、…...
广和通5G智能模组SC171支持Android、Linux和Windows系统,拓宽智能物联网应用
世界移动通信大会2024期间,广和通宣布:5G智能模组SC171除支持Android操作系统外,还兼容Linux和Windows系统,帮助更多智能终端客户快速迭代产品,拓宽智能化应用覆盖范围。 广和通SC171系列基于高通QCM6490物联网解决方案…...
【51单片机】红外遥控红外遥控电机调速(江科大)
1.红外遥控简介 红外遥控是利用红外光进行通信的设备,由红外LED将调制后的信号发出,由专用的红外接收头进行解调输出 通信方式:单工,异步 红外LED波长:940nm 通信协议标准:NEC标准 2.硬件电路 红外发送部分 IN高电平时,LED不亮,IN低电平时&…...
kubesphere jenkins 流水线 未运行(解决方案)
场景: 在kubesphere 中运行 流水线 devops 结果,显示未运行 但是用 admin 账户是可以运行成功的。 问题解决 1- 查日志: 然后 Caused: org.acegisecurity.userdetails.UsernameNotFoundException: org.springframework.security.core.…...
如何保护服务器的安全
互联网的迅速发展,让很多企业都很重视网络技术的使用,但是网络的传播速度比较快,同时容易造成数据、隐私方面的泄露现在每个企业基本有自己的服务器。有几点需要注意,可以参考: 1.基础密码安全 最基本的安全就是密码安…...
Python使用HDL 模拟器实现 FPGA 板卡的仿真验证
Python 结合 HDL 模拟器实现 FPGA 板卡的仿真验证,您可以借助一些开源工具和库来实现这一目的。下面我将为您介绍一种常用的方法,使用 Python 结合 Verilog 模拟器和 FPGA 开发工具进行仿真验证。 ### 步骤概述 1. **编写 Verilog 设计**:首…...
vue中 input disable后无法触发点击事件
问题:input标签为disabled后,点击事项无效;当点击文字**“请选择”**时无法触发点击事件,其父标签的其余位置均可触发 解决:只需要在input标签中添加 style“pointer-events:none” 即可 pointer-events: none 作用是…...
实战一个 Jenkins 构建 CI/CD流水线 的简单配置过程哈
引言:上一期我们讲述了gitlabCI/CD工具的介绍,工具之争,本期我们介绍Jenkins CI/CD 目录 一、Jenkins介绍 1、Jenkins概念 2、Jenkins目的 3、特性 4、产品发布流程 二、安装Jenkins 1、安装JDK 2、安装Jenkins 1、上传压缩包 2、…...
【InternLM 实战营笔记】大模型评测
随着人工智能技术的快速发展, 大规模预训练自然语言模型成为了研究热点和关注焦点。OpenAI于2018年提出了第一代GPT模型,开辟了自然语言模型生成式预训练的路线。沿着这条路线,随后又陆续发布了GPT-2和GPT-3模型。与此同时,谷歌也…...
数据卷(Data Volumes) 自定义镜像(dockerfile)
目录 一. 数据卷(Data Volumes) 1.1 什么是数据卷 1.2 为什么需要数据卷 1.3 数据卷的作用 1.4 数据卷的使用 二. 自定义镜像(dockerfile) 2.1 什么是dockerfile 2.2 自定义centos 2.3 自定义tomcat 一. 数据卷(Data…...
数据库管理-第156期 Oracle Vector DB AI-07(20240227)
数据库管理156期 2024-02-27 数据库管理-第156期 Oracle Vector DB & AI-07(20240227)1 Vector相关DDL操作可以在现有的表上新增vector数据类型的字段:可以删除包含vector数据类型的列:可以使用CTAS的方式,从其他有…...
CASAtomic原子操作详解
什么是原子操作?如何实现原子操作? 我们在接触到事务的时候,了解到事务的一大特性是原子性,一个事务要么全部执行、要么全部不执行。 并发里的原子性和事务里的原子性有一样的内涵和概念。假定有2个操作A和B都包含多个步骤…...
真机测试——关于荣耀Magic UI系列HBuilder真机调试检测不到解决办法
出现这种状况怎么办 1、开启USB调试 2、重点来了——我们要选择USB配置,选择音频来源 3、连接OK...
代理IP安全问题:在国外使用代理IP是否安全
目录 前言 一、国外使用代理IP的安全风险 1. 数据泄露 2. 恶意软件 3. 网络攻击 4. 法律风险 二、保护国外使用代理IP的安全方法 1. 选择可信的代理服务器 2. 使用加密协议 3. 定期更新系统和软件 4. 注意网络安全意识 三、案例分析 总结 前言 在互联网时代&…...
SonarLint 疑难语法修正
/*** 投诉率统计(厂端)* 1.通过售后小区分组统计* 2.通过经销商分组统计* param kpiComplaintRateQueryVO 查询参数* return 投诉率统计数据*/ApiOperation(value "厂端投诉率统计维度查询")PostMapping("/vcdc/ratestatis")public List<KpiComplaintR…...
MurmurHash算法
MurmurHash:(multiply and rotate) and (multiply and rotate) Hash,乘法和旋转的hash 算法。 一、哈希函数 散列函数(英语:Hash function)又称散列算法、哈希函数,是一种从任何一种数据中创建小的数字“…...
CSRF靶场实战
DVWA靶场链接:https://pan.baidu.com/s/1eUlPyB-gjiZwI0wsNW_Vkw?pwd0b52 提取码:0b52 DVWA Low 级别打开靶场,修改密码 复制上面的 url,写个简单的 html 文件 <html <body> <a hrefhttp://127.0.0.1/DVWA/vulne…...
小程序性能优化
背景 在开发小程序的过程中我们发现,小程序的经常会遇到性能问题,尤其是在微信开发者工具的时候更是格外的卡,经过排查发现,卡顿的页面有这么多的js代码需要加载,而且都是在进入这个页面的时候加载,这就会…...
Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...
突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
视频字幕质量评估的大规模细粒度基准
大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...
