[MySQL]MySQL内置函数

[MySQL]MySQL内置函数

文章目录

  • [MySQL]MySQL内置函数
    • 1. 日期函数
    • 2. 字符串函数
    • 3. 数学函数
    • 4. 其他函数

1. 日期函数

常用日期函数如下:

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

时间函数获取数据时是相同的,只是显示的部分不同。

current_date函数:

获取当前的日期(年,月,日)。

[MySQL]MySQL内置函数_第1张图片

current_time函数:

获取当前时间(时,分,秒)。

[MySQL]MySQL内置函数_第2张图片

current_timestamp函数:

获取当前的时间戳。

[MySQL]MySQL内置函数_第3张图片

now函数:

获取当前日期时间。

[MySQL]MySQL内置函数_第4张图片

date函数:

获取datetime参数的日期部分。

[MySQL]MySQL内置函数_第5张图片

date_add函数:

在date中添加日期或时间,interval后的数值单位可以是:year、month、day、hour、minute、second。

[MySQL]MySQL内置函数_第6张图片

date_sub函数:

在date中减去日期或时间,interval后的数值单位可以是:year、month、day、hour、minute、second

[MySQL]MySQL内置函数_第7张图片

datediff函数:

获取两个日期的差,单位是天

[MySQL]MySQL内置函数_第8张图片

[MySQL]MySQL内置函数_第9张图片

时间函数综合案例

创建一个留言表,表中包含自增长的主键id、昵称、评论内容和评论时间。如下:

[MySQL]MySQL内置函数_第10张图片

向留言表中插入一条记录,其中用now函数来作为参数传入:

[MySQL]MySQL内置函数_第11张图片

可以借助date函数使得查询结果中只显示年、月、日:

[MySQL]MySQL内置函数_第12张图片

再在不同时间向表中插入一些记录:

[MySQL]MySQL内置函数_第13张图片

查询最近十分钟插入的记录:

[MySQL]MySQL内置函数_第14张图片

2. 字符串函数

常用字符串函数如下:

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

charset函数:

获取字符串使用的字符集。

[MySQL]MySQL内置函数_第15张图片

[MySQL]MySQL内置函数_第16张图片

concat函数:

获取连接后的字符串。

[MySQL]MySQL内置函数_第17张图片

[MySQL]MySQL内置函数_第18张图片

instr函数:

获取第二个参数在第一个参数中首次出现的位置,没有出现返回0。

[MySQL]MySQL内置函数_第19张图片

ucase函数:

获取转换成大写后的字符串。

[MySQL]MySQL内置函数_第20张图片

lcase函数:

获取转换成小写后的字符串。

[MySQL]MySQL内置函数_第21张图片

left函数:

从字符串的左边开始,向后截取length个字符。

[MySQL]MySQL内置函数_第22张图片

length函数:

获取字符串占用的字节数。

[MySQL]MySQL内置函数_第23张图片

strcmp函数:

逐字符比较两个字符串的大小。

类似于C语言中的strcmp函数:

[MySQL]MySQL内置函数_第24张图片

ltrim、rtrim、trim函数:

分别是去除字符串的前空格、后空格、前后空格。

[MySQL]MySQL内置函数_第25张图片

示例1 : 要求显示exam_result表中的信息,显示格式:“XXX的语文是XXX分,数学XXX分,英语XXX分”。

[MySQL]MySQL内置函数_第26张图片

示例2: 求学生表中学生姓名占用的字节数。

[MySQL]MySQL内置函数_第27张图片

示例3: 将EMP表中所有名字中有S的替换成’上海’。

[MySQL]MySQL内置函数_第28张图片

示例4: 截取EMP表中ename字段的第二个到第三个字符。

[MySQL]MySQL内置函数_第29张图片

示例5: 以首字母小写的方式显示所有员工的姓名。

[MySQL]MySQL内置函数_第30张图片

3. 数学函数

常用数学函数如下:

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

abs函数:

绝对值函数。

[MySQL]MySQL内置函数_第31张图片

bin函数:

十进制转换成二进制。

[MySQL]MySQL内置函数_第32张图片

hex函数:

十进制转换成十六进制。

[MySQL]MySQL内置函数_第33张图片

conv函数:

将第一个参数传入的数字从第二个参数进制转换成第三个参数进制。

[MySQL]MySQL内置函数_第34张图片

ceiling函数:

向上取整。

向上取整函数图像:

[MySQL]MySQL内置函数_第35张图片

[MySQL]MySQL内置函数_第36张图片

floor函数:

向下取整。

向下取整函数图像:

[MySQL]MySQL内置函数_第37张图片

[MySQL]MySQL内置函数_第38张图片

format函数:

格式化,保留n位小数(四舍五入)。

[MySQL]MySQL内置函数_第39张图片

rand函数:

生成随机数,范围 [0.0, 1.0)。

[MySQL]MySQL内置函数_第40张图片

mod函数:

取余运算。

[MySQL]MySQL内置函数_第41张图片

4. 其他函数

user函数

user() 查询当前用户。

[MySQL]MySQL内置函数_第42张图片

md5函数

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

[MySQL]MySQL内置函数_第43张图片

  • 一般情况下公司内部数据库不会存储用户的明文密码,而会将用户密码形成摘要后存储对应的摘要,当用户登录账号时,将用户输入的的密码形成摘要后与数据库中存储的摘要做对比,如果对比成功则允许登录。
  • 这么做的好处主要有两个,第一个好处就是公司内部数据库中存储的不是用户的明文信息,就算用户信息泄露了也不会产生太大影响,第二个好处就是形成的摘要是定长的,这样有利于数据库表结构的设计。

database函数

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

[MySQL]MySQL内置函数_第44张图片

password函数

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

[MySQL]MySQL内置函数_第45张图片

ifnull函数

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

[MySQL]MySQL内置函数_第46张图片

你可能感兴趣的:(MySQL,mysql,数据库,linux,centos,阿里云)