MySQL中的内置函数

文章目录

  • 一、日期函数
    • [1.1 获取当前的日期](#1.1 获取当前的日期)
    • [1.2 获取当前时间](#1.2 获取当前时间)
    • [1.3 获取当前日期和时间](#1.3 获取当前日期和时间)
    • [1.4 提取时间日期](#1.4 提取时间日期)
    • [1.5 添加日期](#1.5 添加日期)
    • [1.6 减少日期](#1.6 减少日期)
    • [1.7 两个日期的差值](#1.7 两个日期的差值)
  • 二、字符串处理函数
    • [2.1 获取字符串的长度](#2.1 获取字符串的长度)
    • [2.2 获取字符串的字节数](#2.2 获取字符串的字节数)
    • [2.3 字符串拼接](#2.3 字符串拼接)
    • [2.4 转小写](#2.4 转小写)
    • [2.5 转大写](#2.5 转大写)
    • [2.6 子字符串第⼀次出现的索引](#2.6 子字符串第⼀次出现的索引)
  • 三、数学函数
    • [3.1 abs函数](#3.1 abs函数)
    • [3.2 ceil 向上取整](#3.2 ceil 向上取整)
    • [3.3 floor 向下取整](#3.3 floor 向下取整)
    • [3.4 rand 随机数](#3.4 rand 随机数)
    • [3.5 round函数](#3.5 round函数)
  • 四、其他常用的函数
    • [4.1 version](#4.1 version)
    • [4.2 database](#4.2 database)
    • [4.3 user](#4.3 user)
    • [4.4 ifnull](#4.4 ifnull)

一、日期函数

1.1 获取当前的日期

curdate:获取当前的日期。加上英文更好记忆current datetime,表示当前的时间

在这里的函数也是可以搭配插入数据(例如存在一个date,datetime关于时间类型的列,在该列中插入数据可以直接使用该函数)。

也可以搭配查询进行使用。

1.2 获取当前时间

curtime:获取当前的时间

1.3 获取当前日期和时间

now():获取当前日期和时间

在这里时间函数都是可以搭配插入和查询进行使用的。

1.4 提取时间日期

DATE(data):提取date或datetime表达式的日期部分。像上面创建一个时间,可以进行提取出日期部分。

1.5 添加日期

在实际开发过程中,假如一不小心把生产日期填写错误,或者把出行时间填写错误,此时就可以通过adddate增加时间。

ADDDATE(date,INTERVAL expr unit):向日期值添加时间值(间隔)

表示增加10天

表示增加两个月

表示增加两天

1.6 减少日期

在实际开发过程中,假如一不小心把生产日期填写错误,或者把出行时间填写错误,此时就可以通过subdate增加时间。

减少一年

减少一个月

减少一天

1.7 两个日期的差值

计算两个日期的差值使用datediff(日期1,日期2)进行计算,以天为单位


二、字符串处理函数

2.1 获取字符串的长度

char_length(str):返回字符串的长度,也就是返回字符的个数。

2.2 获取字符串的字节数

在小编所写的MySQL开篇中创建数据库中说过,不同的字符串在不同的编码环境的单个字符的字节数是不同的,例如在utf8编码格式下是占3个字节,在GBK编码格式下是占2个字节。而获取字符串的字节数是可以通过数据库内置函数进行获取的。

length(str):返回给定字符串的字节数,与当前使用的字符编码集有关。

因为当前编码为utf8,所以两个字符占6个字节。

2.3 字符串拼接

concat(str1,str2.。。)返回拼接后的字符串

2.4 转小写

lcase(str)将字符串转成小写

2.5 转大写

ucase(str)将字符串转成大写

注意:

虽然数据库提供了这样的一些字符串操作,实际开发很少会直接在数据库中进行上述操作。因为数据库往往是配有一个后端系统的,在后端系统中,数据库操作是最慢的,因为他是在硬盘上进行操作的而不是在内存中。所以我们更应该让数据库做的工作更少一点,在上述关于字符串的处理,在java代码中完成,可以奸杀数据库服务器的负担。

2.6 子字符串第⼀次出现的索引

instr(str1,str2):返回str2在str1中第一次出现的位置

此处需要注意,得到的下标是从1开始计算的。


三、数学函数

3.1 abs函数

abs(x):返回x的绝对值

3.2 ceil 向上取整

3.3 floor 向下取整

很简单看单词意思来记住:floor地板,都在地板了肯定在下面

3.4 rand 随机数

生成一个随机浮点值,取值范围[0.0,1.0)

3.5 round函数

round(x,d)将参数x舍入小数点后d位,保留为四舍五入的方式

在这里就可以完成0到10的随机数生成了。在这里如果此时round参数只有一个x的时候就直接四舍五入了。

例子

舍弃到小数点后6位

sql 复制代码
 select round(rand(),6);

四、其他常用的函数

4.1 version

version函数作用是显示当前数据库的版本。查询到的是数据库服务器的版本号和客户端无关。像下面这些都属于客户端的版本号。

而像任务资源管理器中的服务中的才是服务器本身

4.2 database

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

4.3 user

user函数是显示当前用户的。

4.4 ifnull

ifnull(val1,val2)函数,如果val1为null,返回val2,否则返回val1


相关推荐
丶意冷28 分钟前
mybatisPlus分页方言设置错误问题 mybatisPlus对于Oceanbase的Oracle租户分页识别错误
java·数据库·oracle·oceanbase
时序数据说2 小时前
为什么时序数据库IoTDB选择Java作为开发语言
java·大数据·开发语言·数据库·物联网·时序数据库·iotdb
戒不掉的伤怀2 小时前
【Navicat 连接MySQL时出现错误1251:客户端不支持服务器请求的身份验证协议;请考虑升级MySQL客户端】
服务器·数据库·mysql
cv高级工程师YKY2 小时前
服务器 - - QPS与TPS介绍
数据库
nbsaas-boot3 小时前
高可扩展属性建模设计:架构师的全局思考与落地方案
数据库
爱上语文3 小时前
Redis基础(5):Redis的Java客户端
java·开发语言·数据库·redis·后端
陈敬雷-充电了么-CEO兼CTO4 小时前
推荐算法系统系列>推荐数据仓库集市的ETL数据处理
大数据·数据库·数据仓库·数据挖掘·数据分析·etl·推荐算法
MeshddY4 小时前
(超详细)数据库项目初体验:使用C语言连接数据库完成短地址服务(本地运行版)
c语言·数据库·单片机
wuxinyan1234 小时前
Java面试题033:一文深入了解MySQL(5)
java·数据库·mysql·面试
笑衬人心。4 小时前
Ubuntu 22.04 + MySQL 8 无密码登录问题与 root 密码重置指南
linux·mysql·ubuntu