数据库之常用函数

目录

一、数值函数

1.求绝对值函数

2.求余函数

3.用于获取整数的函数

4.获取随机数的函数

5.四舍五入函数

6.截取小数函数

二、字符串函数

1.返回字符串长度和字符串中字符个数的函数

2.合并字符串的函数

3.替换字符串的函数

4.字母大小写转换函数

5.获取指定长度字符串的函数

6.填充字符串的函数

7.删除字符串中空格的函数

8.重复生成字符串的函数

9.获取字符串中子串开始位置的函数

10.反转字符串的函数

三、日期与时间函数

1.获取当前日期的函数

2.获取当前时间的函数

3.获取当前日期和时间的函数

4.获取UNIX时间戳函数

5.获取年份、月份、星期、日、时、分和秒的函数

6.格式化日期和时间的函数

7.计算日期和时间的函数

8.时间和秒相互转换的函数

四、条件判断函数

1.IF()函数

2.IFNULL()函数

3.CASE函数

五、JSON函数

1.创建JSON值的函数

2.修改JSON值的函数

3.从JSON文档中删除数据的函数

4.返回JSON文档中数据和路径的函数

六、其他函数

1.返回数据库信息的函数

2.加密函数

3.对不同进制数据进行转换的函数

4.IP地址与数字相互转换的函数


一、数值函数

函数

功能

ABS(x)

返回数值x的绝对值

MOD(x,y)

返回数值x除以数值y后的余数

CEIL(x)

返回大于数值x的最小整数值

FLOOR(x)

返回小于数值x的最大整数值

RAND()

返回0~1内的随机数

ROUND(x)

返回对参数x进行四舍五入后的值,ROUND(x)返回整数值,ROUND(x,y)返回参数x四舍五入后保留y位小数的值

TRUNCATE(x,y)

对数值x进行截取,保留小数点后y位数字


1.求绝对值函数

函数ABS(x)的返回值是数值x的绝对值。正数的绝对值是其本身,负数的绝对值是其相反数。


2.求余函数

函数MOD(x,y)的返回值是数值x除以数值y后的余数。与x%y的结果相同,除数和被除数任何一个为NULL,返回结果都将为NULL;除数为0将是非法运算,返回结果为NULL。


3.用于获取整数的函数

1.CEIL(x)

函数CEIL(x)的返回值是大于数值x的最小整数值。

2.FLOOR(x)

函数FLOOR(x)的返回值是小于数值x的最大整数值。


4.获取随机数的函数

函数RAND()的返回值是0~1内的小数,并且每次的运行结果都不同。


5.四舍五入函数

函数ROUND()的作用是对数值执行四舍五入操作,当函数格式为ROUND(x)时,返回值为整数;当函数格式为ROUND(x,y)时,对数值x进行四舍五入并保留小数点后y位。


6.截取小数函数

函数TRUNCATE(x,y)的作用是对数值x进行截取,保留小数点后y位。其与ROUND()函数的区别是,ROUND()函数在截取值时会四舍五入;而TRUNCATE(x,y)函数直接截取值,并不进行四舍五入。


二、字符串函数

函数

功能

LENGTH(str),CHAR_LENGTH(str)

返回字符串长度或字符个数

CONCAT(str1,str2...strn),CONCAT_WS(x,str1,str2...strn)

合并字符串

INSERT(str,x,y,instr),REPLACE(str,a,b)

替换字符串

LOWER(str),UPPER(str)

字符大小写转换

LEFT(str,x),RIGHT(str,x),SUBSTRING(str,x,y)

获取字符串的一部分

LPAD(str1,n,str2),RPAD(str1,n,str2)

填充字符串

LTRIM(str),RTRIM(str),TRIM(str)

删除字符串左侧、右侧或两侧空格

REPEAT(str,n)

返回字符串str重复n次的结果

LOCATE(str1,str)

返回子字符串的开始位置

REVERSE(str)

反转字符串


1.返回字符串长度和字符串中字符个数的函数

函数LENGTH(str)用于返回字符串的长度,一个汉字占用2个字节,一个英文字符和数字占用1个字节。

函数CHAR_LENGTH(str)用于返回字符串中的字符个数。


2.合并字符串的函数

函数CONCAT(str1,str2...strn)可以将多个字符串拼接称为一个字符串,但如果参数中有一个NULL值,则返回结果都将为NULL。

函数CONCAT_WS(x,str1,str2...strn)是函数CONCAT(str1,str2...strn)的特殊形式,作用是以第一个参数为分隔符,连接后面的多个字符串。

函数CONCAT_WS(x,str1,str2...strn)会忽略分隔符后的NULL值,但如果分隔符为NULL,则返回结果为NULL。


3.替换字符串的函数

函数INSERT(str,x,y,instr)的作用是将字符串str从第x位置开始,y个字符长的子串替换为字符串instr。

函数REPLACE(str,a,b)的作用是将字符串str中的子串a替换为字符串b。


4.字母大小写转换函数

函数LOWER(str)用于将字符串str中的字母全部转换为小写字母,函数UPPER(str)用于将字符串str中的字母全部转换为大写字母。


5.获取指定长度字符串的函数

函数LEFT(str,x)用于获取字符串str中最左边的x个字符,函数RIGHT(str,x)用于获取字符串str中最右边的x个字符。

函数SUBSTRING(str,x,y)用于获取字符串str中从x位置开始,后面y个字符长度的子串。该函数常用于在给定字符串中提取子串。


6.填充字符串的函数

函数LPAD(str1,n,str2)的作用是使用字符串str2对字符串str1最左边进行填充,直到字符串str1总长度达到n个字符长度。如果str1的字符长度大于或等于n,则不填充。

函数RPAD(str1,n,str2)的作用是使用字符串str2对字符串str1最右边进行填充,直到字符串str1总长度达到n个字符长度。

对于这两个函数来说,当参数n小于str1字符串个数时,字符串str1会被截取;当参数n大于str1字符串个数时,字符串str1才会被填充。


7.删除字符串中空格的函数

函数LTRIM(str)用于删除字符串左侧的空格字符,函数RTRIM(str)用于删除字符串右侧的空格字符。

函数TRIM(str)用于删除字符串开头和结尾的空格,另外,它还可以删除字符串两侧的指定字符。

用法:

TRIM(‘str1’ from ‘str2’);


8.重复生成字符串的函数

函数REPEAT(str,n)返回字符串str重复n次的结果。


9.获取字符串中子串开始位置的函数

函数LOCATE(str1,str)返回子串str1在字符串str中的开始位置,返回值的最小值为1,如果字符串str中不包含字符串str1,则返回0。


10.反转字符串的函数

函数REVERSE(str)返回将字符串str中字符倒序排列后的结果。


三、日期与时间函数

函数

功能

CURDATE()

获取当前日期

CURTIME()

获取当前时间

NOW()

获取当前的日期和时间

UNIX_TIMESTAMP(date)

获取日期date的NUIX时间戳

YEAR(d),MONTH(d),WEEK(d),DAY(d),HOUR(d),MINUTE(d),SECOND(d)

返回指定日期的年份、月份、日期、日、时、分和秒

DATE_FORMAT(d,format)

按format指定的格式显示日期d的值

ADDDATE(date,INTERVAL expr unit),SUBDATE(date,INTERVAL expr unit)

获取一个日期或时间值加上一个时间间隔的时间值

TIME_TO_SEC(d),SEC_TO_TIME(d)

获取将“HH:MM:SS”格式的时间换算为秒,或将秒数换算为“HH:MM:SS”格式的值


1.获取当前日期的函数

函数CURDATE()返回的包含年月日的当前日期。


2.获取当前时间的函数

函数CURTIME()返回“HH:MM:SS”格式的当前时间。


3.获取当前日期和时间的函数

函数NOW()返回当前日期和时间(同时包含年月日和时分秒)。


4.获取UNIX时间戳函数

UNIX时间戳是从1970年1月1日(UTC/GMT的午夜)开始到当前时间所经过的秒数(不考虑闰秒)。一分钟表示为UNIX时间戳为60秒,一小时表示为UNIX时间戳为3600秒,一天表示为UNIX时间戳为86400秒。

函数UNIX_TIMESTAMP(date)返回日期date的UNIX时间戳。


5.获取年份、月份、星期、日、时、分和秒的函数

1.YEAR(d)

函数YEAR(d)返回所给的日期d是哪一年。

2.MONTH(d)和WEEK(d)

函数MONTH(d)返回所给的日期d是一年中的第几个月,函数WEEK(d)返回所给的日期d是一年中的第几周。

3.HOUR(d),MINUTE(d)和SECOND(d)

函数HOUR(d)返回所给时间d的小时,函数MINUTE(d)返回所给时间d的分钟,函数SECOND(d)返回所给时间d的秒。


6.格式化日期和时间的函数

函数DATE_FORMAT(d,format)按字符format格式化日期d的值。

参数值

意义

%Y

四位数形式的年份

%y

两位数形式的年份

%c

数字形式(0~12)的月份

%M

英文形式(January~December)的月份名

%m

数字形式(00~12)的月份

%W

一周中每天为周几,用英文表示

%D

月中的第几天,英文后缀形式,如0th,1st...

%d

两位数字表示月中第几天,形式为00~31

%j

一年的第几日(001~366)

%H

24小时形式的小时(00~23)

%h

12小时形式的小时(01~12)

%r

12小时形式的小时,后缀为上午(AM)或下午(PM)

%i

两位数字形式的分(00~59)

%S

两位数字形式的秒(00~59)


7.计算日期和时间的函数

1.函数ADDDATE()与SUBDATE()分别用于执行日期和时间的加运算与减运算。

其语法形式如下:

ADDDATE(date,INTERVAL expr unit),

SUBDATE(date,INTERVAL expr unit)

参数date是一个日期或时间值,用于指定起始时间;INTERVAL是间隔类型关键字;参数expr是一个字符串,用于指定日期增加或减去的间隔值,该值对应后面的类型unit;参数unit是间隔类型,或者叫单位。

间隔类型值

描述

格式

YEAR

YY

MONTH

MM

DAY

DD

YEAR_MONTH

年和月

YY-MM

DAY_HOUR

日和小时

DD hh

DAY_MINUTE

日和分钟

DD hh:mm

DAY_SECOND

日和秒

DD hh:mm:ss

HOUR

小时

hh

MINUTE

mm

SECOND

ss

HOUR_MINUTE

小时和分

hh:mm

HOUR_SECOND

小时和秒

hh:ss

MINUTE_SECOND

分钟和秒

mm:ss

2.DATEDIFF()函数

函数DATEDIFF()用于计算两个日期之间相差的天数。


8.时间和秒相互转换的函数

函数TIME_TO_SEC(d)可将指定的时间d换算为秒,函数SEC_TO_TIME(d)可将指定的秒换算为“HH:MM:SS”形式的时间格式。


四、条件判断函数

条件判断函数又称为流程控制函数。

函数

功能

IF(expr,v1,v2)

如果expr为真,返回v1,否则返回v2

IFNULL(v1,v2)

如果v1不为NULL,返回v1,否则返回v2

CASE WHEN expr1 THEN r1 [WHEN expr2 THEN r2] [ELSE rn] END

根据条件将数据分为几个档次

CASE expr WHEN v1 THEN r1 [WHEN v2 THEN r2] [ELSE rn] END

根据条件将数据分为几个档次


1.IF()函数

IF(expr,v1,v2)函数的意义是,如果表达式expr的结果为真,函数的返回值为v1,如果表达式expr的结果为假,则返回值为v2。


2.IFNULL()函数

IFNULL(v1,v2)函数的意义是,如果v1不为NULL,则函数的返回值为v1,否则返回值为v2。NULL值是不能参与数值运算的,实际应用中常用该函数来替换掉NULL值。


3.CASE函数

CASE函数的第1种形式如下:

CASE WHEN expr1 THEN r1 [WHEN expr2 THEN r2] [ELSE rn] END

该形式的意义是,如果表达式expr1为真,则返回v1;如果表达式expr2为真,则返回r2;如果expr1和expr2都不为真,则返回rn。

CASE函数的第2种形式如下:

CASE expr WHEN v1 THEN r1 [WHEN v2 THEN r2] [ELSE rn] END

该形式的意义是,如果表达式expr的结果等于v1,那么返回r1;如果expr的结果等于v2,那么返回r2;如果表达式expr的结果既不等于v1也不等于v2,则返回rn。


五、JSON函数

JSON函数就是用于处理JSON类型数据的一组数据。

函数

功能

JSON_ARRAY()

创建JSON数组

JSON_OBJECT()

创建JSON对象

JSON_ARRAY_APPEND()

向JSON数组中追加数据

JSON_SET()

修改JSON对象中的数据

JSON_REMOVE()

删除JSON数组和JSON对象中的数据

JSON_EXTRACT()

返回JSON数组中KEY所对应的数据

JSON_SEARCH()

返回JSON数组中给定数据的路径


1.创建JSON值的函数

在MySQL中创建JSON值的函数有两个,一个用于创建数组形式的JSON值,另一个用于创建对象形式的JSON值。

1.创建JSON数组

JSON_ARRAY()函数用于创建组数形式的JSON值,其语法形式如下:

JSON_ARRAY(val1,val2,......,valn)

2.创建JSON对象

JSON_OBJECT()函数用于创建对象形式的JSON值,其语法形式如下:

JSON_OBJECT(key1,val1,key2,val2,......keyn,valn)


2.修改JSON值的函数

1.JSON_ARRAY_APPEND()

使用JSON_ARRAY_APPEND()函数,可以将值附加到JSON文档中指示数组的结尾并返回结果。其语法形式如下:

JSON_ARRAY_APPEND(json_doc,key,val[,key,val]......)

其中json_doc表示JSON文档,key指示键,val表示要附加的值。

2.JSON_SET()

使用JSON_SET()函数,可以在JSON文档中插入或更新数据并返回结果,其语法形式如下:

JSON_SET(json_doc,key,val[,key,val]......)

其中json_doc表示JSON文档,key指示键,val表示要插入或更新的值。

在使用JSON_SET()函数,如果key已经存在,修改值将会将原值替换;如果key不存在,会在原JSON对象中追加不存在的key和相对应的值。


3.从JSON文档中删除数据的函数

如果用户需要删除JSON数组或者JSON对象中的数据,可以使用JSON_REMOVE()函数,其语法形式如下:

JSON_REMOVE(json_doc,key,val[,key,val]......)


4.返回JSON文档中数据和路径的函数

1.JSON_EXTRACT()

使用JSON_EXTRACT()函数,可以根据给出的key,返回JSON文档中其所对应的数据。

语法形式如下:

JSON_EXTRACT(json_doc,key1,[,key2]......)

2.JSON_SEARCH()

使用JSON_SEARCH()函数可以根据给出的数据,返回JSON文档中其所对应的路径。

语法形式如下:

JSON_SEARCH(json_doc,one_or_all,str)

当参数one_or_all的值为one时,返回第一次匹配字符串str的key;值为all时,返回所有匹配字符串str的key。


六、其他函数

函数

功能

DATABASE()

返回当前数据库名

VERSION()

返回当前数据库版本

USER()

返回当前登录用户名和主机名的组合

MD5(str)

返回字符串str的MD5值

PASSWORD(str)

返回字符串str的加密版本

CONV(val,from_base,to_base)

不同进制之间相互转换

INTE_ATON(IP),INTE_NTOA(val)

IP和数字之间相互转换


1.返回数据库信息的函数

MySQL中常用返回数据库信息的函数有DATABASE(),VERSION()和USER(),其中DATABASE()函数返回使用UTF8字符集的当前数据库名,VERSION()函数返回当前数据库版本,USER()函数返回当前登录用户名和主机名的组合。

如果没有选择任何数据库,DATABASE()函数将返回NULL值。


2.加密函数

1.MD5()

函数MD5(str)可以对字符串str进行加密,算出一个128位二进制形式的信息,但是系统会显示为32位十六进制的信息;若参数为NULL,则返回NULL值。该函数常用于对一些普通的不需要解密的数据进行加密。

2.PASSWORD(str)

函数PASSWORD(str)返回字符串str的加密版本,一个41位长的字符串。该函数只用来对系统用户的密码进行设置,但不能对应用的数据进行加密。如果要加密应用数据,可以使用MD5函数来实现。


3.对不同进制数据进行转换的函数

函数CONV(val,from_base,to_base)用于不同进制数据之间的相互转换,其中,参数val为需要转换的数据,该函数的作用是将其由from_base进制转换为to_base进制。


4.IP地址与数字相互转换的函数

1.INTE_ATON(IP)

使用INTE_ATON(IP)函数可将参数IP转换为其网络字节序形式。

2.INTE_NTOA(val)

使用INTE_NTOA(val)可返回网络字节序val代表的IP地址。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/49746.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Webpack、Vite区别知多少?

前端的项目打包,我们常用的构建工具有Webpack和Vite,那么Webpack和Vite是两种不同的前端构建工具,那么你们又是否了解它们的区别呢?我们在做项目时要如何选择呢? 一、工具定义 1、Webpack:是一个强大的静态模块打包工…

用Java手写jvm之实现查找class

写在前面 完成类加载器加载class的三阶段,加载,解析,初始化中的加载😀😀😀 源码 。 jvm想要运行class,是根据类全限定名称来从特定的位置基于类加载器来查找的,分别如下:…

go语言与UPX

源自:压缩工具之upx_51CTO博客_za压缩工具 下面是直接copy的: 在golang项目中, 最终运行的是打包好的二进制文件,如何才能让这个文件尽可能的小呢? 1.编译阶段的参数处理 go build使用的是静态编译,会将程序的依赖一起打包,这…

【SQL 新手教程 2/20】关系模型 -- 主键

💗 关系数据库建立在关系模型上⭐ 关系模型本质上就是若干个存储数据的二维表 记录 (Record): 表的每一行称为记录(Record),记录是一个逻辑意义上的数据 字段 (Column):表的每一列称为字段(Colu…

【算法】二进制常用操作

二进制常用操作 求n的二进制中第k位数字: n > > k & 1 n>>k\& 1 n>>k&1​ lowbit(x)的用法:返回x中最后一个1, l o w b i t ( x ) x & ( − x ) lowbit(x)x\&(-x) lowbit(x)x&(−x)​ 输入一个 32 位整数&a…

java如何同时继承接口和抽象类

java中要同时继承接口和抽象,需要用到的语句是 class 类名 extends 抽象类名 implements 接口 示例代码如下 interface Animal02{public String Name"牧羊犬";public void shout();public void info(); } abstract class Action01{public abstract voi…

解锁Vue的潜力:封装递归组件的经验之谈(网站导航层架嵌套)

最近在使用BootstrapVue写一个网站(我也不知道为啥要用这个😂),使用到了NavBarDropDown等一些组件的组合,可以自动创建一个响应式的效果,还不错。But…,这个DropDown只支持到二级。有人2019年就在Github上提了issue- dropdown submenu并且作者…

WebKit的CSS Aspect Ratio Box:重塑响应式设计

WebKit的CSS Aspect Ratio Box:重塑响应式设计 在响应式网页设计中,保持元素的宽高比是一个常见需求。幸运的是,CSS提供了一个名为aspect-ratio的属性,它允许开发者为元素定义一个理想的宽高比。在WebKit中,这个属性得…

吴恩达的TranslationAgent学习

TranslationAgent构成 整个[TranslationAgent (github.com)]在流程上分为短文本的一次性翻译和长文本的分chunk翻译(按照Token进行划分)。 但是不论长文本翻译还是短文本翻译,总体流程遵循执行、纠正再执行的逻辑循环实现。 这种按照自省思路…

数据库DDL | 增 删 改 操作 | 对数据库数据表

DDL建库建表(操作数据库/表)⭐️⭐️⭐️ 数据库 创建库 //create database 库名 create database xiaozhao2;查看库 //查看所有的库 show databases;删除库(危险操作) //drop database 库名 drop database xiaozhao2;使用库\切换库 //use 库名 use xiaozhao2;查看库数据…

【数字IC/FPGA】使用Verdi对比两个波形

步骤一: 使用verdi打开第一个波形 bsub verdi -ssf 1.fsdb添加需要观察的信号,如下图所示: 步骤二: 新建容器,依次点击Window --> Dock to --> New Container Window。 然后输入容器的名字,如下图所…

SQL数据库:通过在视频监控平台服务器上直接使用SQL存储过程,在海量记录中查询特定时间段内-某个摄像头的所有视频片段

目录 一、背景 1、存储过程 2、视频监控系统 二、需求和数据表 1、具体要求 2、数据表 3、部分数据 三、实现 1、目标 2、创建存储过程 (1)存储过程代码 (2)创建成功 3、存储过程的解释 4、SQL命令调用方式 5、调用…

Java----队列(Queue)

目录 1.队列(Queue) 1.1概念 1.2队列的使用 1.3队列的模拟实现 1.4循环队列 1.4.1循环队列下标偏移 1.4.2如何区分队列是空还是满 1.5双端队列 (Deque) 1.队列(Queue) 1.1概念 队列:只允许在一端进行插入数据…

训练的韧性:Mojo模型中自定义训练中断与恢复机制的实现

训练的韧性:Mojo模型中自定义训练中断与恢复机制的实现 在机器学习模型的开发过程中,训练过程可能会因为多种原因(如硬件故障、电源中断等)被迫中断。Mojo模型,作为一个泛指,可以代表任何机器学习或深度学…

Linux Redhat ens33不显示IP问题

优质博文:IT-BLOG-CN 【第一步】:查看系统网卡设备 : ip addr show 【第二步】:修改网卡配置参数 cd /etc/sysconfig/network-scripts/ vi ifcfg-ens33 修改ONBOOT参数为yes 【第三步】:重启网卡,然后ping检测…

奇怪的Excel单元格字体颜色格式

使用VBA代码修改单元格全部字符字体颜色是个很简单的任务,例如设置A1单元格字体颜色为红色。 Range("A1").Font.Color RGB(255, 0, 0)有时需要修改部分字符的颜色,如下图所示,将红色字符字体颜色修改为蓝色。代码将会稍许复杂&am…

MySQL - 优化概述

数据库性能取决于数据库层面的多个因素,例如表、查询和配置设置。这些软件构造会在硬件层面产生 CPU 和 I/O 操作,您必须尽量减少这些操作并使其尽可能高效。在致力于数据库性能优化时,您首先要了解软件方面的高级规则和指南,并使…

自定义Spring Cloud Gateway过滤器工厂:实现PrintAnyGatewayFilterFactory

在Spring Cloud Gateway中,除了可以实现全局过滤器外,还可以通过自定义过滤器工厂来实现更加灵活的过滤器配置。本文将带领大家学习如何自定义一个Spring Cloud Gateway过滤器工厂,并具体实现一个打印请求头信息的过滤器工厂。以下是完整代码…

linux设置~/.vimrc步骤

日常模板(够用) #开启自动缩进 set ai #tab的宽度为2 set ts2 # tab自动转为空格 set et 扩展 设置文件格式及编码: set fileformatunix " 设置文件格式为Unix风格 set encodingutf-8 " 设置编码为UTF-8 显示行号和列号&#xf…

Java后端开发岗位面试经验总结:技术深度与实践能力的考验

面试经验分享 XXXX科技有限公司 (成都某小公司) 文章目录 面试经验分享XXXX科技有限公司笔试(100,60及格)对List中的数据进行倒序排列() 10缓存中常见的问题,怎么解决 10用户登录模块流程设计,一级登录权限的设计,数据库表结构设计,登录流程,以及权限验证(对权…