百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT技术 > 正文

Mysql单行函数

wptr33 2024-12-01 05:02 22 浏览

单行函数

MySQL数据库提供了很多函数包括:

数学函数;

字符串函数;

日期和时间函数;

条件判断函数;流程控制函数;

系统信息函数;

加密函数;

格式化函数;

1、数学函数

ABS(x)

返回x的绝对值

CEIL(x)

返回大于x的最小整数值

FLOOR(x)

返回大于x的最大整数值

MOD(x,y)

返回x/y的模

RAND(x)

返回0~1的随机值

ROUND(x,y)

返回参数x的四舍五入地有y位的小数的值

TRUNCATE(x,y)

返回数字x截断为y位小数的结果

SQRT(x)

返回x的平方根

POW(x,y)

返回x的y次方

2、字符串函数

CONCAT(S1,S2,......,Sn)

连接S1,S2,......,Sn为一个字符串

CONCAT(s, S1,S2,......,Sn)

同CONCAT(s1,s2,...)函数,但是每个字符串之间要加上s

CHAR_LENGTH(s)

返回字符串s的字符数

LENGTH(s)

返回字符串s的字节数,和字符集有关

INSERT(str, index , len, instr)

将字符串str从第index位置开始,len个字符长的子串替换为字符串instr

UPPER(s) 或 UCASE(s)

将字符串s的所有字母转成大写字母

LOWER(s) 或LCASE(s)

将字符串s的所有字母转成小写字母

LEFT(s,n)

返回字符串s最左边的n个字符

RIGHT(s,n)

返回字符串s最右边的n个字符

LPAD(str, len, pad)

用字符串pad对str最左边进行填充,直到str的长度为len个字符

RPAD(str ,len, pad)

用字符串pad对str最右边进行填充,直到str的长度为len个字符

LTRIM(s)

去掉字符串s左侧的空格

RTRIM(s)

去掉字符串s右侧的空格

TRIM(s)

去掉字符串s开始与结尾的空格

TRIM(【BOTH 】s1 FROM s)

去掉字符串s开始与结尾的s1

TRIM(【LEADING】s1 FROM s)

去掉字符串s开始处的s1

TRIM(【TRAILING】s1 FROM s)

去掉字符串s结尾处的s1

REPEAT(str, n)

返回str重复n次的结果

REPLACE(str, a, b)

用字符串b替换字符串str中所有出现的字符串a

STRCMP(s1,s2)

比较字符串s1,s2

SUBSTRING(s,index,len)

返回从字符串s的index位置其len个字符

3、日期时间函数

CURDATE() 或 CURRENT_DATE()

返回当前日期

CURTIME() 或 CURRENT_TIME()

返回当前时间

NOW()


SYSDATE()

CURRENT_TIMESTAMP()

LOCALTIME()

LOCALTIMESTAMP()

返回当前系统日期时间

YEAR(date)

MONTH(date)

DAY(date)

HOUR(time)

MINUTE(time)

SECOND(time)

返回具体的时间值

WEEK(date)

WEEKOFYEAR(date)

返回一年中的第几周

DAYOFWEEK()

返回周几,注意:周日是1,周一是2,。。。周六是7

WEEKDAY(date)

返回周几,注意,周1是0,周2是1,。。。周日是6

DAYNAME(date)

返回星期:MONDAY,TUESDAY.....SUNDAY

MONTHNAME(date)

返回月份:January,。。。。。

DATEDIFF(date1,date2)

TIMEDIFF(time1, time2)

返回date1 - date2的日期间隔

返回time1 - time2的时间间隔

DATE_ADD(datetime, INTERVALE expr type)

返回与给定日期时间相差INTERVAL时间段的日期时间

DATE_FORMAT(datetime ,fmt)

按照字符串fmt格式化日期datetime值

STR_TO_DATE(str, fmt)

按照字符串fmt对str进行解析,解析为一个日期

(1)DATE_ADD(datetime,INTERVAL expr type)

SELECT DATE_ADD(NOW(), INTERVAL 1 YEAR);

SELECT DATE_ADD(NOW(), INTERVAL -1 YEAR); #可以是负数

SELECT DATE_ADD(NOW(), INTERVAL '1_1' YEAR_MONTH); #需要单引号

表达式类型

YEAR_MONTH

YEAR

DAY_HOUR

MONTH

DAY_MINUTE

DAY

DAY_SECOND

HOUR

HOUR_MINUTE

MINUTE

HOUR_SECOND

SECOND

MINUTE_SECOND

(2)DATE_FORMAT(datetime ,fmt)和STR_TO_DATE(str, fmt)

格式符

说明

格式符

说明

%Y

4位数字表示年份

%y

表示两位数字表示年份

%M

月名表示月份(January,....)

%m

两位数字表示月份(01,02,03。。。)

%b

缩写的月名(Jan.,Feb.,....)

%c

数字表示月份(1,2,3,...)

%D

英文后缀表示月中的天数(1st,2nd,3rd,...)

%d

两位数字表示月中的天数(01,02...)

%e

数字形式表示月中的天数(1,2,3,4,5.....)



%H

两位数字表示小数,24小时制(01,02..)

%h和%I

两位数字表示小时,12小时制(01,02..)

%k

数字形式的小时,24小时制(1,2,3)

%l

数字形式表示小时,12小时制(1,2,3,4....)

%i

两位数字表示分钟(00,01,02)

%S和%s

两位数字表示秒(00,01,02...)

%W

一周中的星期名称(Sunday...)

%a

一周中的星期缩写(Sun.,Mon.,Tues.,..)

%w

以数字表示周中的天数(0=Sunday,1=Monday....)



%j

以3位数字表示年中的天数(001,002...)

%U

以数字表示年中的第几周,(1,2,3。。)其中Sunday为周中第一天

%u

以数字表示年中的第几周,(1,2,3。。)其中Monday为周中第一天



%T

24小时制

%r

12小时制

%p

AM或PM

%%

表示%

4、流程函数

IF(value,t ,f)

如果value是真,返回t,否则返回f

IFNULL(value1, value2)

如果value1不为空,返回value1,否则返回value2

CASE

WHEN 条件1 THEN result1

WHEN 条件2 THEN result2

....

[ELSE resultn]

END


相当于Java的if...else if...

CASE expr

WHEN 常量值1 THEN 值1

WHEN 常量值1 THEN 值1

....

[ELSE 值n]

END

相当于Java的switch


SELECT ename ,CASE

WHEN salary>=15000 THEN '高薪'

WHEN salary>=10000 THEN '潜力股'

WHEN salary>=8000 THEN '屌丝'

ELSE '草根'

END

FROM t_employee;


SELECT oid,`status`, CASE `status`

WHEN 1 THEN '未付款'

WHEN 2 THEN '已付款'

WHEN 3 THEN '已发货'

WHEN 4 THEN '确认收货'

ELSE '无效订单'

END

FROM t_order;


相关阅读:

MySQL之MYCAT读写分离

MySQL的使用情况详解

MySQL之MYCAT读写分离

Mysql的逻辑架构与存储引擎

MySQL之排序分组优化索引的选择

相关推荐

MYSQL术语介绍:dynamic row format

InnoDB行格式。因为可变长度列值存储在保存行数据的页面之外,所以对于包含大对象的行非常有效。由于通常不会访问大字段来评估查询条件,因此不会经常将它们带入缓冲池,从而减少I/O操作并更好地利用缓...

阿里面试:MySQL Binlog有哪些格式?底层原理?优缺点?

binlog的格式也有三种:STATEMENT、ROW、MIXED,下面我详解binlog三种模式@mikechenStatement模式Statement模式:是基于SQL语句的复制(statem...

Mysql日期格式化显示“年月”(mysql日期格式化)

数据库中存储格式为DATE,如果只显示年月,就需要将日期数据格式化。下面通过两种方式对其格式化显示:...

看完这篇还不懂 MySQL 主从复制,可以回家躺平了

我们在平时工作中,使用最多的数据库就是MySQL...

MySQL binlog format (Statement、Row、Mixed) 二进制日志格式

MySQL的binlog日志作用是用来记录MySQL内部增删改查等对MySQL数据库有更新的内容的记录(对数据库的改动),对数据库的查询select或show等不会被binlog日志记录,主要用于数据...

性能优化-界面卡顿和丢帧(Choreographer 代码检测)

标签:ChoreographerUI卡顿UI丢帧本文将介绍3个知识点:获取系统UI刷新频率检测UI丢帧和卡顿输出UI丢帧和卡顿堆栈信息...

使用Java分析器优化代码性能,解决OOM问题

背景最近我一直在做性能优化,对一个单机应用做性能优化。主要是涉及到解析和导入导出相关的业务。大致说一下这个单机应用干嘛的:制作票样,类似于答题卡。发给某些人填写,然后通过单机python图像识别存到数...

面试必问的HashCode技术内幕(hashmap面试题原理)

3hashCode的内幕tips:面试常问/常用/常出错...

实战Netty!基于私有协议,怎样快速开发网络通信服务

私有协议编写目的本文档用于描述边缘计算单元(以下简称边缘盒)与上位机配置软件(以下简称上位机)之间进行的数据交互通信协议。通信方式...

C#工控上位机系列(2)- 串口通信/监控工具

工控机通常都带有很多串口(10个),而且可以通过Moxa卡扩展串口.但Moxa的串口和电脑自带的串口还是有点区别C#里面没区别,但之前VB6的MSComm控件有时就会有不一样的地方.支持串口通讯...

Java加密与解密之消息摘要算法1(消息摘要(hash函数编码法),又称数字指纹 ( ))

消息摘要算法有3大类,分别是:MD、SHA、MAC,通常用于数据完整性的验证。MD:MessageDigest消息摘要算法。包括:MD2,MD4,MD53种算法。SHA:SecureHashA...

zookeeper的Leader选举源码解析(zookeeper角色选举角色包括)

作者:京东物流梁吉超zookeeper是一个分布式服务框架,主要解决分布式应用中常见的多种数据问题,例如集群管理,状态同步等。为解决这些问题zookeeper需要Leader选举进行保障数据的强一致...

Java 中五种最常见加密算法:原理、应用与代码实现

引言在现代软件开发中,数据安全至关重要。无论是用户密码存储、敏感信息传输,还是系统间的通信,加密技术都扮演着核心角色。Java作为广泛使用的编程语言,通过javax.crypto和java.s...

干货|6招学会调用NFC的各个功能(调出nfc)

现在越来越多的手机支持NFC功能,这种轻松、安全、迅速的通信的无线连接技术,能够让我们的手机替代门禁卡、公交卡、银行卡甚至是车钥匙,那么怎么让APP中能够调用这个功能呢?今天小编就来教给大家!...

一文读懂流媒体协议之RTP 协议(rtp流媒体服务器)

一、简介1.1RTPRTP全名是Real-timeTransportProtocol(实时传输协议)。它是IETF提出的一个标准,对应的RFC文档为RFC3550(RFC1889为其过期版本)。...