【MySQL】内置函数

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 【MySQL】内置函数

思维导图

学习目标

      这一篇博客学习MySQL中一些内置函数

一、日期函数

      一般地,日期是年月日,时间是时分秒。

函数名称 描述
current_date() 当前日期
current_time() 当前时间
current_timestamp() 当前时间戳
date(datetime) 返回datetime参数的日期部分
date_add(date, interval d_value_type) 在date中添加日期或时间
interval 后的数值单位可以是:year,minute,second,day
date_sub(date, interval d_value_type) 在date中减去日期或时间
interval 后的数值单位可以是:year,minute,second,day
datediff(date1, date2) 两个日期的差(左 - 右),单位是天
now() 当前日期时间

1.1 函数举例

current_date()   获取当前日期

                 

current_time()   获取当前时间

                 

current_timestamp()

      获取当前的时间戳,并转化为:年月日 + 时分秒

           

date(datetime)  获取日期时间中的年月日

      可将传入上述的current系列函数,也可以直接传入一个日期时间

date_add(date, interval d_value_type)  进行日期的相加

      进行日期时间加上年/月/日/小时/分钟/秒数

date_sub(date, interval d_value_type)  进行日期的相减

      进行日期时间减去年/月/日/小时/分钟/秒数

datediff(date1, date2)  进行两个日期的差值计算(左 - 右)

now()  显示当前时间(个人觉得和时间戳差不多)

                 

1.2 一些基本案例

1.2.1 案例1:创建一张表,记录生日

create table tmp( id int primary key, birthday date not null ); // 创建一张生日表
insert into tmp values(1, '2010-01-01'), (2, '2024-05-21'), (3, current_date); // 添加时间
select * from tmp; // 查看表中的数据

1.2.2 案例2:创建一个留言表

create table msg( id int primary key auto_increment, content varchar(30) not null, sendtime datetime ); // 创建一张留言表
// 插入数据
insert into msg(content, sendtime) values('hello1', now());
insert into msg(content, sendtime) values('hello2', now());
// 查看留言表
select * from msg;
  • 插入数据

  • 显示所有留言消息,发布日期只显示日期,不用显示时间
select content, date(sendtime) from msg;
  • 请查询在2分钟内发布的帖子
select * from msg where date_add(sendtime, interval 2 minute) > now();

二、字符串函数

函数名称 描述
charset(string) 返回字符串字符集
concat(string, string,[......]) 连接字符串
instr(string, substring) 返回substring在string中出现的位置,没有则返回0
ucase(string) 转换为大写
lcase(string) 转换为小写
left(string, length) 从string中的左边起取length个字符
right(string, length) 从string中的右边起取length个字符
length(string) string的长度
replace(string, search_str, replace_str) 在string中用replace_str替换search_str
strcmp(string1, string2) 逐字符比较两个字符串的大小
substring(string, postion, length) 从string的postion开始,取length个字符
ltrim(string)   rtrim(string)   trim(string) 取出前空格或后空格

2.1 函数举例

charset(string)   返回字符串的字符集

         

concat(string, string, [......])   连接字符串

   

instr(string, substring)  

      返回substring在string中的位置,没有则返回0

ucase(string)  将小写字母转化为大写字母

lcase(string)  将小写字母转换为大写字母

left(string, length)   将string从左边截取length长度的字符串

right(string, length)   将string从右边截取length长度的字符串

length(string)   计算字符串的字节大小

      因为在字符串中,汉字的字节大小为3个字节,而字母的大小为1个字节。

replace(string, search_string, replace_string)  

      将string中的search_string替换为replace_string

strcmp(string1, string2)  逐字符进行比较string1和string2

      左边字符串与右边字符串,如果左边大,则返回1,;如果一样大,则返回0,;如果右边大。则返回-1

substring(string, postion, length)

      截取string的postion位置向后的length长度的字符串

ltrim(string)   rtrim(string)   trim(string)

      取出前空格,或者取出后空格, 或者取出前空格和后空格

2.2 一些案例

  • 要求显示exam_result表中的信息,显示格式为:“XXX的语文是XXX分,数学是XXX分,英语是XXX分”
select concat(name, '的语文:', chinese, ',数学:', math, ',英语:', english) as '分数' from student;
  • 以首字母小写的方式显示所有员工的姓名
select concat(lcase(substring(ename, 1, 1)), substring(ename, 2)) from emp;

三、数学函数

函数名称 描述
abs(number) 绝对值函数
bin(decimal_number) 十进制转换为二进制
hex(decimal_number) 十进制转换为十六进制
conv(number, from_base, to_base) 进制转换
ceiling(number) 向上取整
floor(number) 向下取整
format(number, decimal_places) 格式化,保留小数位数
rand() 返回随机浮点数,范围为[0.0, 1.0)
mod(number, denominator) 取模,求余

3.1 函数举例

abs(number)   绝对值函数

                       

bin(decimal_number)   十进制转换为二进制

                         

hex(decimal_number)   十进制转换为十六进制

                         

conv(number, from_base, to_base)   进制转换

      想转换为几进制就转换为几进制

               

ceiling(number)   向上取整

                     

floor(number)   向下取整

                         

format(number, decimal_places)   格式化,保留小数位数

rand()  返回随机数,范围为[0.0, 1.0)

                         

mod(number, denominator)  求模,取余

                       

3.2 补充一些知识点

3.2.1 向上取整,向下取整,0向取整

3.2.2 负数取模

      取模的定义:如果a和d是两个自然数,可以证明存在两个唯一的整数q和r,满足 a = q * d + r,q 为整数,且0 <= |r| <= |d|。其中,q被称为商,r被称为余数。

      在不同的语言中,同一个计算表达式,负数”取模"的结果是不同的(比如,-10 % 3 在C语言中的结果是-1,在python中的结果为2),我们可以称之为正余数和符余数。

余数取决于商,由于每种语言的取整方式不同,导致不同语言的取模结果是不同的,

四、其他函数

函数名称 描述
user() 查询当前用户
md5(string) 对一个字符串进行md5摘要,摘要后得到一个32位字符串
database() 显示当前正在使用的数据库
password() MySQL数据库使用该函数对用户加密
ifnull(val1, val2) 如果val1为null,返回val2,否则返回val1的值

4.1 函数举例

user()   查询当前用户

                 

md5(string)   加密使用

      对一个字符串进行md5摘要,摘要后得到一个32位字符串

       

database()  显示当前正在使用的数据库

                   

password()  MySQL使用该函数对用户加密

ifnull(val1, val2)   类似于三目运算符

      如果val1为null,返回val2,否则返回val1的值

     

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
JSON 关系型数据库 MySQL
Mysql(5)—函数
MySQL提供了许多内置的函数以帮助用户进行数据操作和分析。这些函数可以分为几类,包括聚合函数、字符串函数、数值函数、日期和时间函数、控制流函数等。
104 1
Mysql(5)—函数
|
20天前
|
SQL 关系型数据库 MySQL
【MySQL基础篇】盘点MySQL常用四大类函数
本文介绍了MySQL中的四大类常用函数:字符串函数、数值函数、日期函数和流程函数。
【MySQL基础篇】盘点MySQL常用四大类函数
|
1月前
|
SQL 关系型数据库 MySQL
MySQL常见函数第二期,你都用过哪些呢 ?
本期介绍了20个常用的MySQL函数,涵盖日期处理(如CURDATE()、DATE_FORMAT())、数学运算(如ABS()、ROUND())、统计分析(如COUNT()、SUM())等,帮助提高SQL查询效率和数据处理能力。希望对大家的学习有所帮助。
66 7
|
1月前
|
关系型数据库 MySQL
MySQL常见函数第一期,你都用过哪些呢 ?
本期介绍10个常用的MySQL函数:字符串连接(CONCAT)、提取子字符串(SUBSTRING)、获取字符串长度(LENGTH)、转换大小写(UPPER、LOWER)、去除空格(TRIM)、替换字符串(REPLACE)、查找子字符串位置(INSTR)、带分隔符的字符串连接(CONCAT_WS)以及获取当前日期时间(NOW)。
67 8
|
1月前
|
数据采集 关系型数据库 MySQL
MySQL常用函数:IF、SUM等用法
本文介绍了MySQL中常用的IF、SUM等函数及其用法,通过具体示例展示了如何利用这些函数进行条件判断、数值计算以及复杂查询。同时,文章还提到了CASE WHEN语句和其他常用函数,如COUNT、AVG、MAX/MIN等,强调了它们在数据统计分析、数据清洗和报表生成中的重要性。
|
1月前
|
关系型数据库 MySQL 数据处理
【MySQL】函数
MySQL 提供了丰富的函数集,涵盖字符串处理、数值运算、日期时间操作和聚合计算等多个方面。这些函数在日常数据库操作中极为重要,通过合理使用这些函数,可以大大提高数据处理和查询的效率。用户还可以通过自定义函数,扩展 MySQL 的功能以满足特定需求。
58 3
|
2月前
|
关系型数据库 MySQL 数据处理
MySQL函数与约束
MySQL 提供了丰富的函数和强大的约束机制,用于数据处理和完整性维护。通过掌握这些工具,可以有效地管理和分析数据库中的数据,确保数据的一致性和准确性。无论是在日常数据查询中使用内置函数,还是在数据库设计中应用各种约束,都是确保数据库系统稳定、高效运行的关键。希望本文对您理解和应用 MySQL 函数与约束有所帮助。
40 1
|
2月前
|
关系型数据库 MySQL Serverless
MySQL函数
最常用的MySQL函数,包括聚合函数,字符串函数,日期时间函数,控制流函数等
43 1
|
3月前
|
存储 SQL 关系型数据库
MySQL 存储函数及调用
MySQL 存储函数及调用
268 3
|
4月前
|
存储 SQL 关系型数据库
MySQL基础:函数
本文介绍了MySQL中几种常用的内建函数,包括字符串函数、数值函数、日期函数和流程函数。字符串函数如`CONCAT()`用于拼接字符串,`TRIM()`用于去除字符串两端的空格,`MOD()`求余数,`RAND()`生成随机数,`ROUND()`四舍五入。日期函数如`CURDATE()`返回当前日期,`NOW()`返回当前日期和时间,`DATE_ADD()`添加时间间隔,`DATEDIFF()`计算日期差。流程函数如`IF()`和`CASE WHEN THEN ELSE END`用于条件判断。聚合函数如`COUNT()`统计行数,`SUM()`求和,`AVG()`求平均值
42 8