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


相关推荐
小鸡脚来咯2 分钟前
redis分片集群架构
数据库·redis·架构
全都是浮夸丶29 分钟前
MVCC理解
mysql
christine-rr38 分钟前
征文投稿:如何写一份实用的技术文档?——以软件配置为例
运维·前端·网络·数据库·软件构建
HyggeBest1 小时前
Mysql 宏观架构
mysql·架构
海尔辛1 小时前
SQL 基础入门
数据库·sql
jiunian_cn2 小时前
【Linux】Linux权限
linux·服务器·mysql
betazhou2 小时前
有没有 MariaDB 5.5.56 对应 MySQL CONNECTION_CONTROL 插件
linux·数据库·mysql·oracle·mariadb
Elohim8152 小时前
数据库SQLite基础
数据库·sqlite
TDengine (老段)3 小时前
TDengine 支持的平台汇总
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
异常君3 小时前
MySQL 中 count(*)、count(1)、count(字段)性能对比:一次彻底搞清楚
java·mysql·面试