【半夜学习MySQL】内置函数(含日期、字符串、数学等函数常用用法介绍及示例详解)

本文主要是介绍【半夜学习MySQL】内置函数(含日期、字符串、数学等函数常用用法介绍及示例详解),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

🏠关于专栏:半夜学习MySQL专栏用于记录MySQL数据相关内容。
🎯每天努力一点点,技术变化看得见

文章目录

  • 日期函数
  • 字符串函数
  • 数学函数
  • 其他函数


日期函数

函数名称描述
current_date()当前日期
current_time()当前时间
current_time()当前时间戳
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()当前日期事件

使用示例:
●获取年月日

select current_date();

在这里插入图片描述

●获取时分秒

select current_time();

在这里插入图片描述

●获取时间戳

select current_timestamp();

在这里插入图片描述

●在日期的基础上加上时间

select date_add('2024-1-1', interval 10 day);

在这里插入图片描述

●在日期的基础上减去时间

select date_sub('2024-1-15', interval 10 day);

在这里插入图片描述

●计算两个日期之间相差多少天

select datediff('2024-1-15', '2024-1-1');

在这里插入图片描述
案例1: 创建一张表,用于记录会员编号和会员注册日期
●创建一张会员表

create table vip(
id int unsigned primary key auto_increment,
sign_date date not null
);

在这里插入图片描述
●插入数据

insert into vip(sign_date) values(current_date());
insert into vip(sign_date) values(current_time());
insert into vip(sign_date) values(current_timestamp());
select * from vip;

在这里插入图片描述
★ps:虽然current_date()、current_time()、current_timestamp()均可时间日期的插入,但这里推荐使用current_date()。

案例2: 创建一个留言板
●创建一个留言表

create table msg(
id int unsigned primary key auto_increment,
content varchar(50) not null,
sendtime datetime
);

在这里插入图片描述
●插入数据

insert into msg(content, sendtime) values('沸羊羊', now());
insert into msg(content, sendtime) values('双面龟', now());
select * from msg;

在这里插入图片描述
●显式所有留言信息,只显式日期,不显示时间

select id, content, date(sendtime) from msg;

在这里插入图片描述
●查询5分钟内发布的贴子

#方法1
select * from msg where date_add(sendtime, interval 5 minute) > now();
#方法2
select * from msg where date_sub(now(), interval 5 minute) < sendtime;

在这里插入图片描述

字符串函数

函数名称描述
charset(str)返回字符串字符集
concat(str [, …])连接字符串
instr(str, substr)返回substr在str中出现的位置, 没有则返回0
ucase(str)转换为大写
lcase(str)转换为小写
left(str, len),从str中左边起取len个字符
length(str)str的长度
replace(str, search_str, replace_str)在str中用replace_str替换search_str
strcmp(str1, str2)逐字符比较两字符串大小
substring(str, position [,length]从str的position位置开始,取length个字符
ltrim(str) / rtrim(str ) / trim(str)去除前空格/后空格/前后空格

案例1: 获取emp表的ename列的字符集

select charset(ename) from emp;

在这里插入图片描述
案例2: 显式emp表中的信息,显示格式:“员工号为:XXX,姓名为:XXX的员工,岗位为XXX”

select concat('员工号为:', empno, ',姓名为:', ename, '的员工,岗位为', job) from emp;

在这里插入图片描述
案例3: 显示员工姓名作战的字节数

select length(ename), ename from emp;

在这里插入图片描述
★ps:length函数返回字符串所占的字节数。字母、数字算一个字符,而其他字符,如中文,需要使用多个字符表示(具体与字符集编码有关)。

案例4: 将emp表中所有姓名中有S的替换为“Jammingpro”

select replace(ename, 'S', 'Jammingpro'), ename from emp;

在这里插入图片描述
★ps:replace函数对数据的修改仅停留在显示层面,并不会修改表中数据。

案例5: 截取emp表中ename字段的第二个到第三个字符

select substring(ename, 2, 2), ename from emp;

在这里插入图片描述
案例6: 以首字母大写的方式,余下字母小写显示所有员工的姓名

select concat(ucase(substring(ename, 1, 1)), lcase(substring(ename, 2))) from emp;

在这里插入图片描述

数学函数

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

使用示例:
●绝对值

select abs(-100.12);
select abs(2000.88);

在这里插入图片描述

●向上取整

select ceiling(10.1);
select ceiling(10.9);
select ceiling(-4.1);
select ceiling(-4.9);

在这里插入图片描述

●向下取整

select floor(10.1);
select floor(10.9);
select floor(-4.1);
select floor(-4.9);

在这里插入图片描述
★ps:取整分为零向取整、向上(向下)的整数取整、四舍五入。其中零向取整,10.1、10.9均向更靠近0的数字10取整,-4.1、-4.9向更偏向0的整数4取整。向上取整,10.1、10.9向大于该数的整数11取整,-4.1、-4.9向大于该数的整数-4取整。向下取整,10.1、10.9向小于该数的整数10取整,-4.1、-4.9向小于该数的整数-5取整。ceiling函数采用向上取整,floor函数采用向下取整。四舍五入取整方式这里不再赘述。
在这里插入图片描述

●保留2位小数(小数四舍五入)

select format(10.256, 2);
select format(12.123, 2);

在这里插入图片描述

●产生随机数

select rand();
select rand();
select rand();

在这里插入图片描述

★ps:rand函数用于生产[0,1)间的随机数,rand函数生成的随机数是浮点数。

●模运算

select mod(10, 3);

在这里插入图片描述

其他函数

●user()查询当前登陆用户

select user();

在这里插入图片描述

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

select md5('jammmingpro');
select md5('a');
select md5('');

在这里插入图片描述

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

select database();

在这里插入图片描述

●pwssword()函数用于对用户密码做加密,但该函数于MySQL5.7.6开始已经被弃用,因为它使用的哈希算法(DOUBLE SHA1)被认为较弱,不再适合用于密码存储。

select password('jammingpro');

在这里插入图片描述

●ifnull(val1, val2),如果val1为null,返回val2,否则返回val1的值

select ifnull('xiaoming', 'jammingpro');
select ifnull(null, 'jammingpro');

在这里插入图片描述

🎈欢迎进入半夜学习MySQL专栏,查看更多文章。
如果上述内容有任何问题,欢迎在下方留言区指正b( ̄▽ ̄)d

这篇关于【半夜学习MySQL】内置函数(含日期、字符串、数学等函数常用用法介绍及示例详解)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/992585

相关文章

JAVA中整型数组、字符串数组、整型数和字符串 的创建与转换的方法

《JAVA中整型数组、字符串数组、整型数和字符串的创建与转换的方法》本文介绍了Java中字符串、字符数组和整型数组的创建方法,以及它们之间的转换方法,还详细讲解了字符串中的一些常用方法,如index... 目录一、字符串、字符数组和整型数组的创建1、字符串的创建方法1.1 通过引用字符数组来创建字符串1.2

SpringCloud集成AlloyDB的示例代码

《SpringCloud集成AlloyDB的示例代码》AlloyDB是GoogleCloud提供的一种高度可扩展、强性能的关系型数据库服务,它兼容PostgreSQL,并提供了更快的查询性能... 目录1.AlloyDBjavascript是什么?AlloyDB 的工作原理2.搭建测试环境3.代码工程1.

Mysql 中的多表连接和连接类型详解

《Mysql中的多表连接和连接类型详解》这篇文章详细介绍了MySQL中的多表连接及其各种类型,包括内连接、左连接、右连接、全外连接、自连接和交叉连接,通过这些连接方式,可以将分散在不同表中的相关数据... 目录什么是多表连接?1. 内连接(INNER JOIN)2. 左连接(LEFT JOIN 或 LEFT

Java中ArrayList的8种浅拷贝方式示例代码

《Java中ArrayList的8种浅拷贝方式示例代码》:本文主要介绍Java中ArrayList的8种浅拷贝方式的相关资料,讲解了Java中ArrayList的浅拷贝概念,并详细分享了八种实现浅... 目录引言什么是浅拷贝?ArrayList 浅拷贝的重要性方法一:使用构造函数方法二:使用 addAll(

Java中switch-case结构的使用方法举例详解

《Java中switch-case结构的使用方法举例详解》:本文主要介绍Java中switch-case结构使用的相关资料,switch-case结构是Java中处理多个分支条件的一种有效方式,它... 目录前言一、switch-case结构的基本语法二、使用示例三、注意事项四、总结前言对于Java初学者

Linux内核之内核裁剪详解

《Linux内核之内核裁剪详解》Linux内核裁剪是通过移除不必要的功能和模块,调整配置参数来优化内核,以满足特定需求,裁剪的方法包括使用配置选项、模块化设计和优化配置参数,图形裁剪工具如makeme... 目录简介一、 裁剪的原因二、裁剪的方法三、图形裁剪工具四、操作说明五、make menuconfig

Golang使用etcd构建分布式锁的示例分享

《Golang使用etcd构建分布式锁的示例分享》在本教程中,我们将学习如何使用Go和etcd构建分布式锁系统,分布式锁系统对于管理对分布式系统中共享资源的并发访问至关重要,它有助于维护一致性,防止竞... 目录引言环境准备新建Go项目实现加锁和解锁功能测试分布式锁重构实现失败重试总结引言我们将使用Go作

JAVA利用顺序表实现“杨辉三角”的思路及代码示例

《JAVA利用顺序表实现“杨辉三角”的思路及代码示例》杨辉三角形是中国古代数学的杰出研究成果之一,是我国北宋数学家贾宪于1050年首先发现并使用的,:本文主要介绍JAVA利用顺序表实现杨辉三角的思... 目录一:“杨辉三角”题目链接二:题解代码:三:题解思路:总结一:“杨辉三角”题目链接题目链接:点击这里

SpringBoot使用注解集成Redis缓存的示例代码

《SpringBoot使用注解集成Redis缓存的示例代码》:本文主要介绍在SpringBoot中使用注解集成Redis缓存的步骤,包括添加依赖、创建相关配置类、需要缓存数据的类(Tes... 目录一、创建 Caching 配置类二、创建需要缓存数据的类三、测试方法Spring Boot 熟悉后,集成一个外

详解Java中的敏感信息处理

《详解Java中的敏感信息处理》平时开发中常常会遇到像用户的手机号、姓名、身份证等敏感信息需要处理,这篇文章主要为大家整理了一些常用的方法,希望对大家有所帮助... 目录前后端传输AES 对称加密RSA 非对称加密混合加密数据库加密MD5 + Salt/SHA + SaltAES 加密平时开发中遇到像用户的