
👦个人主页:@Weraphael
✍🏻作者简介:目前学习计网、mysql和算法
✈️专栏:MySQL学习
🐋 希望大家多多支持,咱一起进步!😁
如果文章对你有帮助的话
欢迎 评论💬 点赞👍🏻 收藏 📂 加关注✨
一、日期函数

1.1 current_date()
- 用于获取当前日期,不包含时间部分
select current_date();

1.2 current_time()
- 用于获取当前时间,不包含日期部分。
select current_time();

1.3 current_timestamp()
- 获取当前时间戳,本质获取当前的
日期+时间
select current_timestamp();

1.4 date()
- 从日期时间中提取日期部分。
你可以将一个日期时间或timestamp类型的列作为参数传递给date()函数,以提取其日期部分。
select date(日期时间);

1.5 date_add()
- 用于向指定的日期添加一个时间间隔
select date_add(date, interval value);
其中:
date是要添加时间间隔的日期值。value是一个表达式,指定要添加的时间间隔,可以是一个整数或一个表达式。该表达式必须是一个正数或一个负数,以指示向前或向后移动日期。interval关键字用于指定时间间隔的单位。这个单位可以是year、month、day、hour、minute、second等。

1.6 date_sub()
- 用于从指定的日期减去一个时间间隔。
select date_sub(date, interval value);
其中:
date是要添加时间间隔的日期值。value是一个表达式,指定要添加的时间间隔,可以是一个整数或一个表达式。该表达式必须是一个正数或一个负数,以指示向前或向后移动日期。interval关键字用于指定时间间隔的单位。这个单位可以是year、month、day、hour、minute、second等。

1.7 datediff()
- 返回两个日期相差多少天,返回值的单位是天。
select datediff(date1, date2);
# 计算的表达式:date1 - date2

1.8 now()
- 返回当前日期时间。(等价于时间戳
timestamp)
select now();

1.9 案例:留言板
- 创建一个留言表
create table message(
name varchar(32),
content text,
sendtime datetime
);

- 插入一些数据如下所示

- 显示所有留言信息,发布日期只显示日期,不用显示时间

- 日期计算:查询在
3分钟内发布的帖子

select * from message where date_sub(now(), interval 3 minute) <= sendtime;

二、字符串函数

2.1 charset()
- 用来获取字符串的字符集
select charset(str);
# str是要检查的字符串

2.2 concat()
- 用于将两个或多个字符串连接在一起
select concat(str1, str2,...);
# str1, str2, ... 是要连接的字符串参数
【使用案例】
假设有学生成绩表exam_result,表中数据如下所示:

- 要求显示
exam_result表中的信息,显示格式:XXX的语文是XXX分,数学XXX分,英语XXX分
select concat(name, '的语文是',chinese,'分,数学是',math,'分,','英语是',english,'分') as 成绩表 from exam_result;

2.3 instr()
- 在一个字符串中搜索指定子字符串的第一次出现的位置,如果未找到子字符串,则返回
0。这说明字符串的下标是从1开始的
select instr(str, substr);
# str是原始字符串
# substr 是要查找的子字符串

2.4 ucase()
- 将字符串中的所有字符转换为大写形式
select ucase(str);

2.5 lcase()
- 将字符串中的所有字符转换为小写形式
select lcase(str)

2.6 left()
- 从字符串的左侧截取指定长度的子字符串
select left(str, length);
# str 是要截取的原始字符串
# length 是要截取的长度。

2.7 right()
- 从字符串的右侧截取指定长度的子字符串
select right(str, length);
# str 是要截取的原始字符串
# length 是要截取的长度。

2.8 length() + char_length()
- 返回字符串的总字节数大小
select length(str);

由于我默认的字符集是utf8,因此一个汉字是3个字节。
如果你想得到字符数,那么可以使用char_length()
select char_length(str);

2.9 replace()
- 用于在字符串中替换指定的子字符串为新的子字符串
select replace(str, old_substring, new_substring);
# str 是要进行替换操作的原始字符串
# old_substring 是要被替换的子字符串
# new_substring 是要替换成的新子字符串。
【使用案例】
假设有员工表emp,表中数据如下所示:

- 现要求将
emp表中所有名字中有S的替换成上海

2.10 strcmp()
- 用于比较两个字符串,并返回一个整数值。
- 如果两个字符串相等,则返回
0;如果第一个字符串小于第二个字符串,则返回负值;如果第一个字符串大于第二个字符串,则返回正值。
select strcmp(str1, str2);

2.11 substring()
- 用于从字符串中提取子字符串
substring(str, start);
substring(str, start, length);
# str - 原始字符串
# start 是开始提取的位置,下标从1开始
# length 是要提取的字符数
# 没有第三个参数默认提取到字符串结束
【使用案例】
假设有员工表emp,表中数据如下所示:

- 截取
emp表中ename字段的第二个到第三个字符
select ename,substring(ename,2,2) from emp;

- 以首字母小写的方式显示所有员工的姓名
首先需要将员工姓名首字母变成小写,可以先将首字母和剩下字母进行分开处理,那么可以使用substring函数
select ename,substring(ename,1,1),substring(ename,2) from emp;

然后再使用lcase函数将首字母变小写
select ename,lcase(substring(ename,1,1)),substring(ename,2) from emp;

最后再将名字拼接起来,可以使用concat函数
select ename, concat(lcase(substring(ename,1,1)),substring(ename,2)) from emp;

2.12 ltrim() + rtrim() + trim()
应用场景:当用户在输入表单中输入文本时,可能会不小心在文本的开头或结尾添加了额外的空格。使用这些函数可以轻松地将这些额外的空格去除,确保输入的文本格式正确。
ltrim():去除字符串左侧(开头)的空格。

rtrim():去除字符串右侧(结尾)的空格。

trim():去除字符串首尾的空格。

三、数学函数

3.1 abs()
- 绝对值函数
select abs(nums);

3.2 bin()
- 转换二进制数
select bin(num);

注意:如果num是小数,那么它只会将整数部分转化为二进制

3.3 hex()
- 转换十六进制数
select hex(num);

3.4 conv()
- 执行数字的进制转换。它将数字从一个数字系统(例如二进制、八进制或十六进制)转换为另一个数字系统
conv(num, from_base, to_base);
其中:
-
num是要转换的数字(以字符串形式表示)。 -
from_base是数字的原始数字系统的基数。 -
to_base是要转换为的目标数字系统的基数。
3.5 ceiling() + floor()
ceiling():向上取整floor():向下取整
select ceiling(num);
select floor(num);
不管是向上取整还是向下取整,我们只需要画一个数轴出来

- 如果是向下取整,就在这个数的下面找一个离它最近的整数。

- 同理地,如果是向上取整,就在这个数的上面找一个离它最近的数。

3.6 format()
- 格式化函数,将数值保留小数位数。
select format(num, decimal_places);
# num 是要格式化的数字。
# decimal_places 是要保留的小数位数

另外,如果你想要省略小数部分,可以将decimal_places设置为0

3.7 rand()
- 函数用于生成一个介于
[0,1)之间的随机浮点数。
select rand();
3.8 mod()
- 用于计算两个数的模运算(取余运算)。
select mod(n, m);
# N 是被除数
# M 是除数

四、其他函数
4.1 user()
- 返回当前登录
mysql的的用户名
select user();

4.2 md5()
md5是一种常用的哈希函数,返回一个32位的字符串。- 用途:给用户隐私信息进行加密,如密码等。
select md5(任意数值);

4.3 database()
- 显示当前正在使用的数据库。
4.4 password()
- 用于创建一个加密的密码字符串。

4.5 ifnull
- 用于检查第一个值是否为
null值- 如果
expr1为null,返回expr2,否则返回expr1的值
select ifnull(expr1, expr2);

860

被折叠的 条评论
为什么被折叠?



