【MySQL】内置函数

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: 【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的值

     

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
JSON 关系型数据库 MySQL
Mysql(5)—函数
MySQL提供了许多内置的函数以帮助用户进行数据操作和分析。这些函数可以分为几类,包括聚合函数、字符串函数、数值函数、日期和时间函数、控制流函数等。
308 1
Mysql(5)—函数
|
6月前
|
SQL 关系型数据库 MySQL
MySQL 常用函数
我们这次全面梳理 MySQL 中的常用函数,涵盖 聚合函数、字符串函数、日期时间函数、数学函数 和 控制流函数 等五大类。每类函数均配有语法说明与实用示例,帮助读者提升数据处理能力,如统计分析、文本处理、日期计算、条件判断等。文章结尾提供了丰富的实战练习,帮助读者巩固和应用函数技巧,是进阶 SQL 编程与数据分析的实用工具手册。
541 2
|
9月前
|
SQL 关系型数据库 MySQL
【YashanDB知识库】MySQL field 函数的改写方法
【YashanDB知识库】MySQL field 函数的改写方法
|
9月前
|
SQL 关系型数据库 MySQL
【YashanDB知识库】MySQL field 函数的改写方法
本文来自YashanDB官网,介绍将MySQL的FIELD函数改写到YashanDB的方法。MySQL中,FIELD函数用于自定义排序;而在YashanDB中,可使用DECODE或CASE语句实现类似功能。示例展示对表`t1`按指定顺序排序的过程,提供两种改写方式,结果均符合预期。
|
11月前
|
SQL 关系型数据库 MySQL
Mysql-常用函数及其用法总结
以上列举了MySQL中一些常用的函数及其用法。这些函数在日常的数据库操作中非常实用,能够简化数据查询和处理过程,提高开发效率。掌握这些函数的使用方法,可以更高效地处理和分析数据。
307 19
|
SQL 关系型数据库 MySQL
【MySQL基础篇】盘点MySQL常用四大类函数
本文介绍了MySQL中的四大类常用函数:字符串函数、数值函数、日期函数和流程函数。
【MySQL基础篇】盘点MySQL常用四大类函数
|
数据采集 关系型数据库 MySQL
MySQL常用函数:IF、SUM等用法
本文介绍了MySQL中常用的IF、SUM等函数及其用法,通过具体示例展示了如何利用这些函数进行条件判断、数值计算以及复杂查询。同时,文章还提到了CASE WHEN语句和其他常用函数,如COUNT、AVG、MAX/MIN等,强调了它们在数据统计分析、数据清洗和报表生成中的重要性。
|
SQL 关系型数据库 MySQL
MySQL常见函数第二期,你都用过哪些呢 ?
本期介绍了20个常用的MySQL函数,涵盖日期处理(如CURDATE()、DATE_FORMAT())、数学运算(如ABS()、ROUND())、统计分析(如COUNT()、SUM())等,帮助提高SQL查询效率和数据处理能力。希望对大家的学习有所帮助。
306 7
|
关系型数据库 MySQL
MySQL常见函数第一期,你都用过哪些呢 ?
本期介绍10个常用的MySQL函数:字符串连接(CONCAT)、提取子字符串(SUBSTRING)、获取字符串长度(LENGTH)、转换大小写(UPPER、LOWER)、去除空格(TRIM)、替换字符串(REPLACE)、查找子字符串位置(INSTR)、带分隔符的字符串连接(CONCAT_WS)以及获取当前日期时间(NOW)。
282 8
|
关系型数据库 MySQL 数据处理
【MySQL】函数
MySQL 提供了丰富的函数集,涵盖字符串处理、数值运算、日期时间操作和聚合计算等多个方面。这些函数在日常数据库操作中极为重要,通过合理使用这些函数,可以大大提高数据处理和查询的效率。用户还可以通过自定义函数,扩展 MySQL 的功能以满足特定需求。
263 3

推荐镜像

更多