数据库篇:mysql内置函数

前言

sql 是程序开发员绕不开的一项技能,而mysql是当前最流行的数据库,熟知其内置的一些函数,可以使我们平时的开发工作更加顺畅和方便

  • 时间日期函数

  • 字符串函数

  • 数学计算相关函数

  • 条件判断函数

  • 加密和压缩函数

  • 聚合函数

  • 格式或类型转化函数

  • 加锁函数和解锁函数

1 时间日期函数

函数功能描述
CURDATE(),CURRENT_DATE()返回当前日期,精确到年月日
CURTIME(),CURRENT_TIM返回当前时间,时分秒
NOW(),CURRENT_TIMESTAMP(),LOCALTIME(),SYSDATE(),LOCALTIMESTAMP()返回当前日期和时间:年月日时分秒
UNIX_TIMESTAMP()以UNIX时间戳的形式返回当前时间
UNIX_TIMESTAMP(timeStr)将时间timeStr字符串以UNIX时间戳的形式返回
FROM_UNIXTIME(timestamp)将UNIX时间戳timestamp转换为普通格式的时间
UTC_DATE()返回UTC日期
UTC_TIME()返回UTC时间
MONTH(dateTime)返回日期d中的月份值,1~12 SELECT MONTH('2021-06-05 11:11:11')->06
MONTHNAME(dateTime)返回日期 dateTime 当中的月份名称,如Janyary
DAYNAME(dateTime)返回日期 dateTime 是星期几,如Monday,Tuesday
DAYOFWEEK(dateTime)日期 dateTime 今天是星期几,1:星期日,2:星期一...7:星期六
WEEKDAY(dateTime)日期 dateTime 今天是星期几, 0表示星期一,1表示星期二
WEEK(dateTime),WEEKOFYEAR(dateTime)计算日期 dateTime 是本年的第几个星期,范围是0->53
DAYOFYEAR(dateTime)计算日期 dateTime 是本年的第几天
DAYOFMONTH(dateTime)计算日期 dateTime 是本月的第几天
QUARTER(dateTime)返回日期 dateTime 是第几季节,返回1->4
HOUR(t)返回t中的小时值 SELECT HOUR('5:13:14') ->5
MINUTE(t)返回t中的分钟值 SELECT MINUTE('5:13:14') ->13
SECOND(t)返回t中的秒钟值 SELECT SECOND('5:13:14') ->14
EXTRACT(type FROM dateTime)从日期 dateTime 中获取指定的值,type指定返回的值 SELECT EXTRACT(MINUTE FROM '2021-06-05 11:13:14') ->13
TIME_TO_SEC(time)将时间 time 转换为秒:SELECT TIME_TO_SEC('01:12:00') ->4320
SEC_TO_TIME(second)将以秒为单位的时间second转换为时分秒的格式 SELECT SEC_TO_TIME(4320)->01:12:00
TO_DAYS(dateTime)计算日期 dateTime 距离0000年1月1日的天数
DATEDIFF(date1,date2)计算日期 date1->date2 之间相隔的天数 SELECT DATEDIFF('2001-01-01','2001-02-02')->-32
ADDDATE(d,n)计算其实日期d加上n天的日期
ADDDATE(d,INTERVAL expr type)计算起始日期d加上一个时间段后的日期; SELECT ADDDATE('2021-06-11 11:13:14', INTERVAL 5 MINUTE)->2021-06-11 11:18:14 (TYPE的取值与上面那个列出来的函数类似)
SUBDATE(d,n)日期d减去n天后的日期
SUBDATE(d,INTERVAL expr type)日期d减去一个时间段后的日期
ADDTIME(t,n)时间t加上n秒的时间
SUBTIME(t,n)时间t减去n秒的时间
DATE_FORMAT(d,f)按表达式f的要求显示日期d
TIME_FORMAT(t,f)按表达式f的要求显示时间t
  • EXTRACT方法的type可取值为:MICROSECOND、SECOND、MINUTE、HOUR、DAY、WEEK、MONTH、QUARTER、YEAR、SECOND_MICROSECOND、MINUTE_MICROSECOND、MINUTE_SECOND、HOUR_MICROSECOND、HOUR_SECOND、HOUR_MINUTE、DAY_MICROSECOND、DAY_SECOND、DAY_MINUTE、DAY_HOUR、YEAR_MONTH

2 字符串函数

函数功能描述
CHAR_LENGTH(s)返回字符串s的字符数
LENGTH(s)返回字符串s的长度
CONCAT(s1,s2,...)将字符串s1,s2等多个字符串合并为一个字符串
CONCAT_WS(x,s1,s2,...)同CONCAT(s1,s2,...)函数,但是使用x作为连接符
INSERT(s1,x,len,s2)用字符串s2替换s1的x位置开始,长度为len的字符串
UPPER(s),UCAASE(S)将字符串s的所有字母变成大写字母
LOWER(s),LCASE(s)将字符串s的所有字母变成小写字母
LEFT(s,n)返回字符串s的前n个字符
RIGHT(s,n)返回字符串s的后n个字符
LPAD(s1,len,s2)使用字符串s2来填充s1的开始处,使字符串长度达到len
RPAD(s1,len,s2)使用字符串s2来填充s1的结尾处,使字符串的长度达到len
LTRIM(s)去掉字符串s开始处的空格
RTRIM(s)去掉字符串s结尾处的空格
TRIM(s)去掉字符串s开始和结尾处的空格
TRIM(s1 FROM s)去掉字符串s中开始处和结尾处的字符串s1 SELECT TRIM('@' FROM '@@abc@@') -> abc
REPEAT(s,n)将字符串s重复n次
SPACE(n)返回n个空格
REPLACE(s,s1,s2)用字符串s2替代字符串s中的字符串s1
STRCMP(s1,s2)比较字符串s1和s2
SUBSTRING(s,n,len)获取从字符串s中的第n个位置开始长度为len的字符串
MID(s,n,len)同SUBSTRING(s,n,len)
LOCATE(s1,s),POSITION(s1 IN s)从字符串s中获取s1的开始位置
INSTR(s,s1)从字符串s中获取s1的开始位置
REVERSE(s)将字符串s的顺序反过来
FIELD(s,s1,s2...)返回第一个与字符串s匹配的字符串位置;SELECT FIELD('c','a','b','c') ->  3
SUBSTRING_INDEX返回从字符串str的第count个出现的分隔符delim之后的子串

3 数学计算相关函数】

函数功能描述
ABS(x)返回x的绝对值
CEIL(x),CEILING(x)向上取整
FLOOR(x)向下取整
RAND()返回0~1范围的随机数
RAND(x)
SIGN(x)判断数值是正负或者零
PI()返回圆周率(3.141593)
TRUNCATE(x,y)返回数值x保留到小数点后y位的值(截断)
ROUND(x)返回离x最近的整数,四舍五入
ROUND(x,y)保留x小数点后y位的值,但截断时要进行四舍五入
POW(x,y).POWER(x,y)返回x的y次方
SQRT(x)返回x的平方根
EXP(x)返回e的x次方 SELECT EXP(3) -- 20.085536923188
MOD(x,y)返回x除以y以后的余数
LOG(x)返回自然对数(以e为底的对数)
LOG10(x)返回以10为底的对数
RADIANS(x)将角度转换为弧度
DEGREES(x)将弧度转换为角度
SIN(x)求正弦值(参数是弧度)
ASIN(x)求反正弦值(参数是弧度)
COS(x)求余弦值(参数是弧度)
ACOS(x)求反余弦值(参数是弧度)
TAN(x)求正切值(参数是弧度)
ATAN(x)ATAN2(x) 求反正切值(参数是弧度)
COT(x)求余切值(参数是弧度)

4 条件判断函数

函数功能描述
IF(expr1,expr2,expr3)如果expr1不为0或者NULL,则返回expr2的值,否则返回expr3的值
IFNULL(expr1,expr2)如果expr1不为NULL,返回expr1,否则返回expr2
NULLIF(expr1,expr2)如果expr1=expr2则返回NULL, 否则返回expr2
CASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN result ...] [ELSE result] END当compare_value=value时返回result
CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END当condition 为TRUE时返回result

5 加密和压缩函数

函数功能描述
MD5MD5(str)函数可以对字符串str进行散列,可以用于一些普通的不需要解密的数据加密
SHA1(str), SHA(str)计算160位校验和,返回40位16进制数构成的字符串,当str为NULL时返回NULL
SHA2(str, hash_length)计算SHA-2系列的哈希方法(SHA-224, SHA-256, SHA-384, and SHA-512)
ENCRYPT(str[,salt])用unix crypt()来加密str,salt至少要有两位字符
ENCODE(str,pswd)ENCODE函数可以使用加密密码pswd来加密字符串str
DECODE(crypt_str,pswd)对应ENCODE函数
MAX([DISTINCT] expr)最小值
MIN([DISTINCT] expr)最大值
SUM([DISTINCT] expr)累计总和

6 聚合函数

函数功能描述
AVG([DISTINCT] expr)返回expr的平均值,distinct选项用于忽略重复值
COUNT([DISTINCT] expr)返回select中expr的非0值个数,返回值为bigint类型
GROUP_CONCAT连接组内的非空值,若无非空值,则返回NULL

7 格式或类型转化函数

函数功能描述
CONV(N,from_base,to_base)改变数字N的进制,返回值为该进制下的数字构成的字符串
INET_ATON(expr)ip字符串转数字
INET_NTOA(expr)数字转ip字符串
CAST(expr AS type)转换数据类型
CONVERT(expr,type)type可以为BINARY[(N)],CHAR[(N)],DATE,DATETIME, DECIMAL[(M[,D])],DECIMAL[(M[,D])],TIME,UNSIGNED [INTEGER]
CONVERT(expr USING cs)将字符串s的字符集变成cs,cs如utf8等等

8 加锁函数和解锁函数

函数功能描述
GET_LOCK(name,time)函数定义一个名称为nam、持续时间长度为time秒的锁。如果锁定成功,则返回1;如果尝试超时,则返回0;如果遇到错误,返回NULL。
RELEASE_LOCK(name)函数解除名称为name的锁。如果解锁成功,则返回1;如果尝试超时,返回0了如果解锁失败,返回NULL;
IS_FREE_LOCK(name)函数判断是否已使用名为name的锁定。如果使用,返回0,否则,返回1

欢迎指正文中错误

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

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

相关文章

C# 中 Webclient和Httpclient

在C#中,WebClient和HttpClient,这两个类都是用于发起HTTP请求的客户端,它们在使用API上传文件或数据时有不同的优缺点和应用场景。在C#中WebClient是一种较早的网络客户端,而HttpClient是后期提供的更现代的、功能更强大的HTTP客户…

权限获得第一步

权限获得第一步 下载打开附件 给了一串加密的密文 一般都是用MD5加密,每一段分别解码一下 第一段不行,试一下第二段 这里发现第二段可以解码出来,这应该就是密码了 flag{3617656}

HTML 轮播图(Carousel)详细讲解

HTML 轮播图(Carousel)详细讲解 轮播图(Carousel)是一种常见的用户界面组件,用于在同一位置展示多个图像或内容,允许用户通过滑动或自动播放的方式查看不同的内容。它通常用于展示产品、图片、广告等。 1…

25秋招面试总结

秋招从八月底开始,陆陆续续面试了不少,现在也是已经尘埃落定,在这里做一些总结一些我个人的面试经历 腾讯 腾讯是我最早面试的一家,一开始捞我面试的是数字人民币,安全方向的岗位,属于腾讯金融科技这块。…

一份关于 Ubuntu 系统下代理配置的故障排查笔记

Ubuntu 网络代理配置与故障排查指南 在使用 Ubuntu 系统时,配置网络代理可以帮助提升网络访问速度或突破网络限制。然而,代理配置过程中可能会遇到各种问题。本文将详细介绍如何在 Ubuntu 下配置网络代理,并提供故障排查的步骤和解决方案。 …

001__VMware软件和ubuntu系统安装(镜像)

[ 基本难度系数 ]:★☆☆☆☆ 一、Vmware软件和Ubuntu系统说明: a、Vmware软件的说明: 官网: 历史版本: 如何下载? b、Ubuntu系统的说明: 4、linux系统的其他版本:红旗(redhat)、dibian、cent…

fiscoBcos中webase平台导出java项目

导出合约为java项目并调用 1. 在webase管理平台上面进行项目的导出 2.将下载好的项目解压并用idea打开,目录结构如下 在resources目录下的abi放的是编译过后的合约方法,bin.ecc放的是以编译过后的智能合约,conf文件夹下面放的是链…

【嵌入式C语言】指针数组结构体

指针与数组 指针与数组指针数组数组指针 多维数组数组名的保存 结构体定义结构体定义结构体变量使用typedef简化结构体声明访问结构体成员结构体内存分配字节对齐位域定义位域位域的限制示例 指针与数组 指针数组和数组指针是两个不同的概念,它们涉及到指针和数组的…

Junit4单元测试快速上手

文章目录 POM依赖引入业务层测试代码Web层测试代码生成测试类文件 在工作中我用的最多的单元测试框架是Junit4。通常在写DAO、Service、Web层代码的时候都会进行单元测试&#xff0c;方便后续编码&#xff0c;前端甩锅。 POM依赖引入 <dependency><groupId>org.spr…

ubuntu 20.04 国内源安装docker

先更新软件包&#xff0c;安装备要apt软件 # 更新软件包索引 sudo apt-get update# 安装需要的软件包以使apt能够通过HTTPS使用仓库 sudo apt-get install ca-certificates curl gnupg lsb-release使用阿里云源 # 添加阿里云官方GPG密钥 curl -fsSL http://mirrors.aliyun.co…

【优选算法】查找总价格为目标值的两个商品(双指针)

算法_云边有个稻草人的博客-CSDN博客 目录 解法一&#xff1a;暴力算法 解法二&#xff1a;双指针(时间复杂度为O&#xff08;N&#xff09;) 【代码编写】 LCR 179. 查找总价格为目标值的两个商品 - 力扣&#xff08;LeetCode&#xff09; 解法一&#xff1a;暴力算法 用…

时空信息平台-API安全措施-下篇:登录鉴权【访问受限】您的请求已被该站点的安全策略拦截。

文章目录 引言I 登录鉴权处理逻辑校验顺序用户状态校验密码校验Token鉴权短信验证码/图形验证码登录设备限制II 服务端发生错误的处理业务返回码处理前端处理业务返回码nginx处理http状态码引言 时空信息平台-API安全措施:上篇(通讯协议的安全措施) https://blog.csdn.net/z…

UE(虚幻)学习(三) UnrealSharp插件中调用非托管DLL

上一篇文章中我使用UnrealSharp成功使用了我的一个C#控制台程序中的网络模块&#xff0c;这个程序是基于KCP网络了&#xff0c;其中调用了Cmake 编译的一个C的DLL&#xff0c;在虚幻中DLL需要放在Binaries目录中才可以。Unity中只要放在任意Plugins目录中就可以。 但是Binaries…

编译openssl遇到错误Parse errors: No plan found in TAP output的解决方法

在编译openssl时 tar -zxvf openssl-1.1.1p.tar.gz cd openssl-1.1.1p ./config --prefix/usr --openssldir/etc/ssl --shared zlib make make test 遇到错误 Parse errors: No plan found in TAP output 解决方法&#xff1a; yum install perl-Test-Simple

IO多路复用(select/epoll)

目录 一、概念 二、语法 1.select 1.1 select函数的语法 1.2 文件描述符集合操作 1.3 select函数的优缺点 2.epoll 2.1 epoll语法 2.2 epoll的工作模式 2.3 epoll的优缺点 三、select服务端代码 四、epoll服务端代码 五、客户端代码 一、概念 IO多路复用是一种同…

android stdudio环境: gradle一直安装失败

一、一直显示如下错误 The specified Gradle distribution file:/home/wangqingyuan/.gradle/wrapper/dists/gradle-8.6-bin/gradle-8.6-bin.zip does not exist. 经分析&#xff0c;是因为应用本身设置了gradle版本的地址为本地&#xff1a; 应用目录&#xff1a;gradle/gra…

解决PS 撤销卡顿

1. 关闭Windows Ink - 打开触控笔设置 - 禁用Windows Ink功能 2. 创建 PSUserConfig.txt&#xff08;注意Win10/11 可能隐藏文件扩展名&#xff09; - 位置&#xff1a;C:\Users\[用户名]\AppData\Roaming\Adobe\Adobe Photoshop CC 2019\Adobe Photoshop CC 2019 Se…

spring默认线程池SimpleAsyncTaskExecutor特点为什么要尽量避免使用

在 Spring Boot 中&#xff0c;默认的线程池配置由 TaskExecutionAutoConfiguration 类提供&#xff0c;使用的是 SimpleAsyncTaskExecutor。 SimpleAsyncTaskExecutor特点 每次调用创建新线程&#xff1a; SimpleAsyncTaskExecutor 每次执行任务时都会创建一个新线程&#xf…

软件测试 Linux 服务器监控命令的基本知识

Linux 服务器因其高效、稳定、开源等优势&#xff0c;广泛用于网络服务、数据库管理、应用开发等领域。而为了确保服务器的正常运行和性能&#xff0c;我们必须不断监控服务器的状态。这就需要我们熟悉一些基本的监控命令。 本文将详细介绍多种监控命令的使用方法及其应用。同…

Spring 的不同事务传播行为

目录 Spring 的不同事务传播行为 PROPAGATION_REQUIRES_NEW事务传播行为什么情况下会使用? 一、PROPAGATION_REQUIRES_NEW的含义 二、使用场景 三、注意事项 PROPAGATION_NESTED事务传播行为什么情况下会使用? 一、PROPAGATION_NESTED的含义 二、使用场景 三、嵌套事…