二、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代码需要加载,而且都是在进入这个页面的时候加载,这就会…...
生成xcframework
打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式,可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

视频字幕质量评估的大规模细粒度基准
大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
C语言中提供的第三方库之哈希表实现
一. 简介 前面一篇文章简单学习了C语言中第三方库(uthash库)提供对哈希表的操作,文章如下: C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...
深度剖析 DeepSeek 开源模型部署与应用:策略、权衡与未来走向
在人工智能技术呈指数级发展的当下,大模型已然成为推动各行业变革的核心驱动力。DeepSeek 开源模型以其卓越的性能和灵活的开源特性,吸引了众多企业与开发者的目光。如何高效且合理地部署与运用 DeepSeek 模型,成为释放其巨大潜力的关键所在&…...
云原生周刊:k0s 成为 CNCF 沙箱项目
开源项目推荐 HAMi HAMi(原名 k8s‑vGPU‑scheduler)是一款 CNCF Sandbox 级别的开源 K8s 中间件,通过虚拟化 GPU/NPU 等异构设备并支持内存、计算核心时间片隔离及共享调度,为容器提供统一接口,实现细粒度资源配额…...