MySQL函数

日期函数

MySQL 中有许多内置的日期函数可以对日期和时间进行处理。以下是 MySQL 中常用的日期函数:

函数名称说明
now()返回当前的日期和时间
curdate() / current_date()返回当前日期
curtime() / current_time()返回当前时间
current_timestamp()当前时间戳
year / month / day(date)返回指定日期的年份 / 月份 / 天数
hour / minute / second(time)返回指定时间的小时数 / 分钟数 / 秒数
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() 函数

current_date() 函数用于获取当前的日期:

在这里插入图片描述

current_time() 函数

current_time() 函数用于获取当前时间:

在这里插入图片描述

current_timestamp() 函数

current_timestamp() 函数用于获取当前的时间戳:

在这里插入图片描述

date_add() 函数

在给定日期的基础上加上日期:

在这里插入图片描述

date_sub() 函数

在给定的日期基础上减去时间:

在这里插入图片描述

datediff() 函数

计算两个日期之间相差的天数:

在这里插入图片描述

综合案例:

创建一个评论表,表中包含一个 id,nickname(昵称),content(评论内容),sendtime(评论时间),如下所示:

在这里插入图片描述

向表中插入一批数据,如下:

,

显示所有评论信息,发布日期只显示日期,不用显示时间。则在查询 sendtime 字段时,可以通过 date 函数截取 sendtime 的日期部分进行显示,如下:

在这里插入图片描述

再向表中插入一批数据,然后查询在 2 分钟内发布的评论:

在这里插入图片描述

字符串函数

MySQL 提供了许多字符串函数,以下是一些常用的函数:

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

这些函数可以对字符串进行各种处理和转换。除此之外,还有很多其它的字符串函数可供使用,具体使用哪些函数需要根据具体的业务需求来决定。

charset函数

接下来使用以下员工表(emp),获取 emp 表的 enamel 列的字符集。

在这里插入图片描述

可以使用 charset 来获取 emp 表中 ename 列使用的字符集:

在这里插入图片描述

concat函数

要求显示 emp 表中的信息,显示格式:''xxx 的工作是 xxx ,属于 xxx 门 ‘’。

在这里插入图片描述

length函数

求 emp 表中员工姓名占用的字节数。

在这里插入图片描述

注意:length 函数返回字符串长度,以字节为单位。如果是多字节字符则计算多个字节数;如果是单字节字符则算作一个字节。比如:字母,数组算作一个字节,中文表示多个字节数(与字符集编码有关)。

replace函数

将 emp 表中所有名字中有 S 的替换成 '上海 ':

在这里插入图片描述

substring函数

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

在这里插入图片描述

concat函数

在 emp 表中,以首字母小写的方式显示所有员工的姓名:首先使用 substring(ename,1,1) 截取出 ename 的首字符,用 lcase 将其转化为小写,然后使用 substring(ename,2) 从ename 的第二个字符开始向后截取全部字符,最后用 concat 函数将它们连接起来。

在这里插入图片描述

instr函数

instr 函数用于获取一个字符串在另外一个字符串中首次出现的位置,若没有出现,则返回 0 ,如下:

在这里插入图片描述

left函数

left 函数用于从字符串的左边开始,向后截取指定个数的字符,如下:

在这里插入图片描述

strcmp函数

strcmp 函数用于逐字符按照 ASCII 码比较两个字符串的大小,两个字符串大小相等则返回 0 ,前者大于后者返回 1,后者大于前者返回 -1。如下:

在这里插入图片描述

注意,strcmp 函数在进行比较时,不区分字符的大小。如下:

在这里插入图片描述

ltrim、rtrim、trim 函数

ltrim 和 rtrim 函数分别用于去除字符串的前空格和后空格,如下:

在这里插入图片描述

trim 函数用于去除字符串的前后空格:

在这里插入图片描述

数学函数

MySQL 提供了很多数学函数,以下是一些常用的函数:

函数名称描述
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)取模,求余

abs函数

abs 用于获取一个数的绝对值:

在这里插入图片描述

bin函数

bin 函数用于将一个十进制的数字转换为二进制:

在这里插入图片描述

bin函数

hex 函数用于将一个十进制的数字转换为十六进制:

在这里插入图片描述

conv函数

用于将一个数字从一个进制转换为另外一个进制:

在这里插入图片描述

ceiling函数

将一个数值进行向上取整:

在这里插入图片描述

floor函数

将一个数值进行向下取整:

在这里插入图片描述

format函数

用于对数值进行格式化,以四舍五入的方式保留指定位数的小数:

在这里插入图片描述

rand函数

用于返回一个随机浮点数,它的范围是 [0.0 - 1.0]:

在这里插入图片描述

mod函数

用于对数值进行求余运算:

在这里插入图片描述

其它函数

mod函数

用于查询当前用户:

在这里插入图片描述

md5函数

在 MySQL 中,md5 是一个哈希函数,用于将任意长度的字符串转换为固定长度的 128 位哈希值。md5 哈希值是不可逆的,即不能从哈希值退出原始字符串。

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

在这里插入图片描述

md5 函数通常用于加密密码。例如:当一个用户创建一个账号并设置密码时,密码通常储存为 md5 哈希值,而不是明文密码。当用户登陆时,输入的密码将被转换成 md5 哈希值,并与储存的哈希值进行比较,以验证密码是否正确。

这么做的好处主要有两个,第一个就是数据库内部储存的不是用户的明文信息,若数据泄漏了,会将影响降低。第二个就是形成的摘要长度是固定的,有利于数据库表结构的设计。

database函数

显示当前用户正在使用的数据库:

在这里插入图片描述

password函数

MySQL 数据库使用该函数对用户进行加密:

在这里插入图片描述

ifnull函数

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

在这里插入图片描述


总结:MySQL 函数是在对数据进行处理时非常重要的一部分,它们可以对数据进行各种处理和转换,提高数据处理的效率和精确度。这里介绍了一些常用的函数及其用法。这些函数具有广泛的适用性,无论是在开发 web 程序还是数据分析中,都是非常有用的。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风&57

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值