MySQL--MySQL函数

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除

MySQL函数

一、MySQL函数简介

函数表示对输入参数值返回一个具有特定关系的值 ,MSOL提供了大量丰富的函数,在进行数据库管理以及数据的查询和操作时将会经常用到各种函数。通过对数据的处理,数据库功能可以变得更加强大,可以更加灵活地满足不同用户的需求。各类函数从功能方面主要分为++数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数和加密函数等其他函数++

二、数学函数

1、绝对值函数ABS(x)和返回圆周率的函数PI()

**ABS(X)**返回X的绝对值;

sql 复制代码
 mysql> select ABS(2),ABS(-3.3),ABS(-33);
 # 返回------  2    3.3    33

**PI()**返回圆周率π的值。默认显示小数位6位;

sql 复制代码
 mysql> select pi();
 # 返回------  3.141593

2、平方根函数SQRT(X)和求余函数MOD(X,Y)

**SQRT(X)**返回非负数x的二次方根;

sql 复制代码
 mysql> select sqrt(9),sqrt(40),sqrt(-40);
 # 返回------  3    6.324555320336759    NULL

**MOD(X)**返回x被y除后的余数,MOD()对于带有小数部分的数值也起作用;

sql 复制代码
 mysql> select mod(31,8),mod(234,10),mod(45.5,6);
 # 返回------  7    4    3.5

3、获取整数的函数CEIL(X),CEILING(X)和FLOOR(X)

CEIL(X)和CEILING(X) 的意义相同,返回**++不小于x的最小整数值++**,返回值转化为一个BIGINT

sql 复制代码
 mysql> select ceil(-3.35),ceiling(3.35);
 # 返回------  -3    4

FLOOR(x) 返回**++不大于x的最大整数值++**,返回值转化为一个BIGINT

sql 复制代码
 mysql> select floor(-3.35),floor(3.35);
 # 返回------  -4    3

4、获取随机数的函数RAND()和RAND(X)

RAND(x) 返回一个随机浮点值v,范围在0到1之间(0≤v≤1.0)。若已指定一个整数参数x,则它被用作种子值,用来产生重复序列。

sql 复制代码
 mysql> select rand(),rand(),rand();
 # 返回------  0.4599793697334634    0.9860691958908636      0.5504079009875729

不带参数的RAND()每次产生的随机数值是不同的

sql 复制代码
 mysql> select rand(10),rand(10),rand(11);
 # 返回------  0.6570515219653505    0.6570515219653505    0.907234631392392

可以看到,当 RAND(x)的参数相同时,将产生相同的随机数,不同的x产生的随机数值不同

5、函数ROUND(x)、ROUND(x,y)和 TRUNCATE(x,y)

ROUND(x) 返回最接近于参数x的整数 ,对x值进行四舍五入

sql 复制代码
 mysql> select round(-1.14),round(-1.67),round(1.14),round(1.66);
 # 返回------  -1    -2    1    2

ROUND(x,y) 返回最接近于参数x的数,其值保留到小数点后面y位 ,若y为负值,则将保留x值到小数点左边y位

sql 复制代码
 mysql> select round(1.38,1),round(1.38,0),round(232.38,-1),round(232.38,-2);
 # 返回------  1.4     1    230    200

TRUNCATE(x,y) 返回被舍去至小数点后y位的数字x。若y的值为0,则结果不带有小数点或不带有小数部分。若y设为负数,则截去(归零)x小数点左起第y位开始后面所有低位的值。

sql 复制代码
 mysql> select truncate(1.31,1),truncate(1.99,1),truncate(1.99,0),truncate(19.99,-1);
 # 返回------  1.3    1.9    1    10

6、符号函数SIGN(X)

SIGN(x) 返回参数的符号,x的值为负、零或正时返回结果依次为-1、0或1

sql 复制代码
 mysql> select sign(-21),sign(0),sign(21);
 # 返回------  -1    0    1

7、幂运算函数POW(X,Y)、POWER(X,Y)和EXP(X)

POW(x,y) 或者 POWER(x,y) 函数返回x的y次乘方的结果值

sql 复制代码
 mysql> select pow(2,2),power(2,2),pow(2,-2),power(2,-2);
 # 返回------  4    4    0.25    0.25

**EXP(x)**返回e的x乘方后的值

sql 复制代码
 mysql> select exp(3),exp(-3),exp(0);
 # 返回------  20.085536923187668    0.049787068367863944    1

8、对数运算函数 LOG(x)和 LOG10(x)

LOG(x) 返回x的自然对数x相对于基数e的对数

sql 复制代码
 mysql> select log(3),log(-3);
 # 返回------  1.0986122886681098    NULL

**LOG10(x)**返回x的基数为 10的对数

sql 复制代码
 mysql> select log10(2),log10(100),log10(-100);
 # 返回------  0.3010299956639812    2    NULL

9、角度与弧度相互转换的函数RADIANS(x)和DEGREES(x)

RADIANS(x) 将参数x由角度转化为弧度

sql 复制代码
mysql> select radians(90),radians(180);
# 返回------  1.5707963267948966    3.141592653589793

DEGREES(x) 将参数x由弧度转化为角度

sql 复制代码
mysql> select degrees(pi()),degrees(pi() / 2);
# 返回------   180    90

10、正弦函数 SIN(x)和反正弦函数 ASIN(x)

SIN(x) 返回x正弦,其中x为弧度值

sql 复制代码
mysql> select sin(1),round(sin(pi()));
# 返回------  0.8414709848078965    0

**ASIN(x)**返回x的反正弦,即正弦为x的值。若x不在-1到1的范围之内,则返回 NULL。

sql 复制代码
mysql> select asin(0.8414709848078965),asin(3);
# 返回------  1    NULL

11、余弦函数 COS(x)和反余弦函数 ACOS(x)

COS(x) 返回x的余弦,其中x为弧度值

sql 复制代码
mysql> select cos(0),cos(pi()),cos(1);
# 返回------  1    -1    0.5403023058681398

ACOS(x) 返回x的反余弦,即余弦是x的值。若x不在-1~1的范围之内,则返回 NULL

sql 复制代码
mysql> select acos(1),acos(0),round(acos(0.5403023058681398));
# 返回------  0    1.5707963267948966    1

12、正切函数、反正切函数和余切函数

TAN(x) 返回x的正切,其中x为给定的弧度值;

sql 复制代码
mysql> select tan(0.3),round(tan(pi()/4));
# 返回------  0.30933624960962325     1

**ATAN(x)**返回x的反正切,即正切为x的值

sql 复制代码
mysql> select atan(0.30933624960962325),atan(1);
# 返回------  0.3    0.7853981633974483

三、字符串函数

1、计算字符串字符数与长度

CHAR LENGTH(str) 返回值为字符串str所包含的字符个数。一个多字节字符算作一个单字符。

sql 复制代码
​mysql> select char_length('date'),char_length('egg');
# 返回------ 4    3

LENGTH(str) 返回值为字符串的字节长度 ,使用utf8 (UNICODE的一种变长字符编码,又称万国码 )编码字符集时,一个汉字是3字节,一个数字或字母算1字节

sql 复制代码
mysql> select length('date'),length('egg');
# 返回------ 4    3

2、合并字符串函数CONCAT(s1,s2)、CONCAT_WS(x,s1,s2,...)

未完...

相关推荐
苹果酱05674 分钟前
C语言 char 字符串 - C语言零基础入门教程
java·开发语言·spring boot·mysql·中间件
熊明才26 分钟前
Ubuntu 22.04.4 LTS + certbot 做自动续签SSL证书(2024-11-14亲测)
数据库·网络协议·ssl
用户6279947182621 小时前
GBase 8a MPP Cluster基于审计日志的冷温热数据分析
数据库
用户6279947182621 小时前
快速搭建南大通用GBase 8s数据库SSC共享存储集群
数据库
阿乾之铭2 小时前
Spring Boot中集成Redis与MySQL
spring boot·redis·mysql
FIN技术铺3 小时前
问:数据库的六种锁机制实践总结?
数据库·sql·oracle
程序员劝退师_3 小时前
优惠券秒杀的背后原理
java·数据库
Gauss松鼠会3 小时前
GaussDB全密态数据库等值查询
数据库·oracle·gaussdb
JSUITDLWXL3 小时前
在Oracle数据中更新整个对象和更新对象的某几个字段时,他们的锁是相同的吗
数据库·oracle
杏花春雨江南3 小时前
ddl/dml/dcl
数据库·oracle