mysql独有的函数_数据库之MySQL函数(一)

一、数学函数

1、绝对值函数

ABS(x) :返回 x 的绝对值

mysql> select ABS(2),ABS(-2.3),ABS(-22);

返回的结果如下:

a70b16c8e3add310580371fc70599fd6.png

数学学得好的大佬应该知道(本人是个数学渣。。。。),负数的绝对值是正数,正数的绝对值还是正数本身

2、 返回圆周率的函数

PI() :返回圆周率值

mysql> select PI();

返回结果如下:

a375ac9523b499990a979c7e534fcdbb.png

本应该是3.1415926.......,但是他将6给四舍五入了,所以返回结果为3.141593

3、平方根函数

SQRT(x) :可以返回非负数 x 的二次方根

mysql> select SQRT(9),SQRT(40),SQRT(-49);

1fe39069187d8160ae40554a9242aead.png

4、求余函数

MOD(x,y)

返回 x 被 y 除后的余数,对于带有小数部分的数值也起作用

mysql> select MOD(31,8),MOD(234,10),MOD(45.5,6);

f05a3e621c6dfc6e36c5c93f600e6879.png

5、 获取整数的函数

CEIL(x) :返回不小于 x 的小整数值

CEILING(x) :返回不小于 x 的小整数

FLOOR(x) :返回不大于 x 的大整数值

mysql> select CEIL(-3.35),CEIL(3.35),CEILING(-3.35),CEILING(3.35),FLOOR(-3.35),FLOOR(3.35);

ad13fc42cd5bf6247af6270c181f96a1.png

6、获取随机数的函数

RAND() :返回一个随机浮点值,范围在 0 ~ 1 之间

RAND(x) :返回一个随机浮点值,范围在 0~1 之间,x 被用作种子值,用来产生重复序列

mysql> mysql> select RAND(),RAND(),RAND(5),RAND(5),RAND(8);

返回的结果如下:

8f1561dca22787623b0f100db6d4839e.png

7、 四舍五入的函数:

ROUND(x) : 用于对 x 进行四舍五入

ROUND(x,y):用于对 x 进行四舍五入,并保留小数点后 y 位

mysql> select ROUND(-1.14),ROUND(1.14),ROUND(1.38,1),ROUND(1.38,0),ROUND(232.38,-1),ROUND(232.38,-2);

489f90e6c45a0a600eec4bc4733cef9f.png

8、截取数值的函数

TRUNCATE(x,y) 用于对 x 进行截取,结果保留小数点后 y 位

mysql> select TRUNCATE(1.31,1),TRUNCATE(1.99,1),TRUNCATE(1.99,0);

5171a7dd4179f467536e21bf329c309f.png

9、符号函数

SIGN(x) :用于返回参数 x 的符号,当 x 为负数时返回 -1 ,当 x 为正数时返回 1 , 当 x 为 零时返回 0

mysql> select SIGN(-21),SIGN(0),SIGN(21);

de266c393e65724582b13f90364ed1ee.png

10、幂运算函数

POW(x,y) :用于返回 x 的 y 次方的结果

POWER(x,y) :和pow用法一样,只是多了个er

EXP(x) :返回e的值(自然对数的底数),升为X的幂(我看这段话也是看的一头雾水,本人数学渣)

mysql> select POW(2,4),POWER(2,-4),EXP(3);

4b3f48e04039aa39e8c553f93acc4790.png

11、对数运算函数

LOG(x) :返回 x 的自然对数,x为负数则返回为空

LOG10(x): 计算以 10 为基数的对数

mysql> select LOG(3),LOG(-3),LOG10(2),LOG10(100),LOG10(-100);

9b3a29bff29010364323535e3cf5d24c.png

12、角度与弧度相互转换的函数

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

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

mysql> select RADIANS(90),RADIANS(180),DEGREES(PI()),DEGREES(PI()/2);

5e845751647efc020710820ea3acf706.png

13、正弦函数和反正弦函数

SIN(x) :用于返回 x 的正弦值,其中 x 为弧度值

ASIN(x) :用于返回 x 的反正弦,即正弦为 x 的值

mysql> select SIN(1),ROUND(SIN(PI())),ASIN(0.8414709848078965),ASIN(3);

036123b38ce706e72cb51e80cae51ea5.png

14、余弦函数和反余弦函数

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

ACOS(x) :用于返回 x 的反余弦,即余弦是 x 的值

mysql> select COS(0),COS(PI()),COS(1),ACOS(1),ACOS(0),ROUND(ACOS(0.5403023058681397));

088889df7f4e21cff977b23692886314.png

15、正切函数、反正切函数、余切函数

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

ATAN(x) :用于返回 x 的反正切,即正切为 x 的值

COT(x) :用于返回 x 的余切

mysql> select TAN(0.3), ROUND(TAN(PI()/4)),ATAN(0.30933624960962325), ATAN(1),COT(0.3), 1/TAN(0.3), COT(PI()/4);

23021f501e3739d3538b28cb4eb4614b.png

二、 字符串函数

1、 计算字符串长度的函数

CHAR_LENGTH(str) :用于统计 str 的字符个数

LENGTH(str) :用于统计 str 的字节长度,使用 utf8 编码字符集时,一个汉字是3个字节,一个数字或字母是1个 字节

mysql> select CHAR_LENGTH('date'), CHAR_LENGTH('egg'),LENGTH('date'), LENGTH('egg'),LENGTH('汉字');

a77a3a3db2b11582e4a48136a11fbe50.png

2、合并字符串的函数

CONCAT(s1,s2,...) :用于合并字符串 s1, s2, ..... ,如果有一个参数为 NULL,则结果为 NULL

CONCAT_WS(x,s1,s2,...) :以 x 作为分隔符,将 s1, s2, .... 合并,如果 分隔符为 NULL ,则结果为 NULL

mysql> select CONCAT('My','SQL','5.7'), CONCAT('My',NULL,'SQL');

aeeb8a8f00fbddd47d446c7d91327597.png

mysql> select CONCAT_WS('-','1st','2nd','3rd'), CONCAT_WS(NULL,'1st','2nd','3rd');

cb949167a2858e5277ce72fed0ca3a32.png

3、替换字符串的函数

INSERT(s1,x,len,s2)

(1) INSERT(s1,x,len,s2) 用于返回字符串 s1,其子字符串起始于 x 位 置和被字符串 s2 取代的 len 字符

(2) 如果 x 超过字符串长度,则返回值为原始字符串,如果 len 的长度大于其 他字符串的长度则从位置 x 开始替换

(3) 如果任何一个参数为 NULL ,则返回值为 NULL

mysql> select INSERT('Quest', 2, 4, 'What') AS col1,INSERT('Quest', -1, 4, 'What') AS col2,INSERT('Quest', 3, 100, 'Wh') AS col3;

a22364884f1a793617f38cb23e5d2d10.png

4、转换大小写的函数

LOWER(str) :用于将字符串 str 中的 字母字符全部转换成小写字母

LCASE(str) :用于将字符串 str 中的字母字符全部转换成小写字母

UPPER(str) :用于将 str 中的小写字母转换成大写字母

UCASE(str) :用于将 str 中的小写字母转换成大写字母

mysql> select LOWER('BEAUTIFUL'), LOWER('Well'),LCASE('BEAUTIFUL'), LCASE('Well'), UPPER('black'), UPPER('BLacK'),UCASE('black'), UCASE('BLacK');

97706f46f68397448f1af82c67d74892.png

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

LEFT(s,n) :用于返回字符串 s 开始的左边 n 个字符

RIGHT(s,n) :用于返回字符串 s 中右边 n 个字符

mysql> select LEFT('football', 5),RIGHT('football',4);

aa09067e575a09103921ec011d3ddf10.png

6、填充字符串的函数

LPAD(s1,len,s2) :返回字符串 s1 ,其左边由字符串 s2 填充到 len 字符长度,如果 s1 的长度大于 len ,则返回值被缩短至 len 长度

RPAD(s1,len,s2) :返回字符串 s1 ,其右边由字符串 s2 填充到 len 字符长度,如果 s1 的长度大于 len ,则返回值 被缩短至 len 长度

mysql> select LPAD('hello',4,'??'), LPAD('hello',10,'??'),RPAD('hello',4,'?'), RPAD('hello',10,'?');

da70273545becd6f7c01008620d1627e.png

可以看到上图中字符串'hello'长度大于4,不需要填充,只被缩短。第二字符串'hello'长度小于10,因此被填充。

7、删除空格的函数

LTRIM(s) :用于删除字符串 s 左侧的空格

RTRIM(s) :用于删除字符串 s 右侧的空格

TRIM(s) :用于删除字符串 s 两侧的空格

mysql> select LTRIM(' book '),RTRIM(' book '),TRIM(' book ');

a80b3f1341684049aada888238a96723.png

8、删除指定字符串的函数

TRIM(s1 FROM s) 用于删除字符串 s 中两端所有的子字符串 s1 , 如果没有指定 s1 ,则默认删除字符串 s 两侧的空格

mysql> select TRIM('xy' FROM 'xyxyabcxy');

0d70b36c4d816b1b461cb1d8487c5580.png

9、重复生成字符串的函数

REPEAT(s,n) :用于重复字符串 s ,n 表示重复多少次

mysql> select REPEAT('mysql',3);

307ffa0835d2cd683b30f7eafa379ab3.png

10、空格函数

SPACE(n): 用于返回 n 个空格

mysql> select SPACE(10);

mysql> select SPACE(20);

9e12e8711a65c64866c6cfddf32fec7e.png

11、替换函数

REPLACE(s,s1,s2) 表示使用字符串 s2 替换字符串 s 中所有的字符串 s1

mysql> select REPLACE('xxx.mysql.com', 'x', 'w');

882e86fce9d3e22f45df3bcded87bc85.png

12、比较字符串大小的函数

STRCMP(s1,s2) 用于比较字符串 s1 和 s2 的大小,若所有字符串相 同则返回 0 ,若第一个字符串大于第二个字符串则返回 1 ,若第一个字符串小于第二个字符串则返回 -1

mysql> select STRCMP('txt', 'txt2'), STRCMP('txt', 'txt');

49ad62467a377208d8b3b9bbb37723b8.png

13、获取子字符串的函数

SUBSTRING(s,n,len) :用于获取指定位置的子字符 串

MID(s,n,len):用于获取指定位置的子字符串

mysql> select SUBSTRING('breakfast',5) AS col1, # 从第5个字符串开始获取

-> SUBSTRING('breakfast',5,3) AS col2, # 从第5个字符串开始,获取3个

-> SUBSTRING('breakfast',-5) AS col3, # (倒向)从第5个字符串开始获取

-> SUBSTRING('breakfast',-5,3) AS col4; # (倒向)从第5个字符串开始获取,获取 3个

580b3ceb57e7d64c20117f54bc7d5bcc.png

mysql> select MID('breakfast',5) AS col1, #同上

-> MID('breakfast',5,3) AS col2,

-> MID('breakfast',-5) AS col3,

-> MID('breakfast',-5,3) AS col4;

4b6dcd054ad6069993e290b65f1eb267.png

14、匹配子字符串开始位置的函数

LOCATE(str1,str) :用于返回字符串 str1 在字符串 str 中的开始位置

POSITION(str1 IN str): 用于返回字符串 str1 在字符串 str 中的开始位置

INSTR(str, str1) :用于返回子字符串 str1 在字符串 str 中的开始位置

mysql> select LOCATE('ball', 'football'),POSITION('ball' IN 'football'),INSTR('football', 'ball');

c1d06599be5f94430b66e29e871a6429.png

15、反转字符串的函数

REVERSE(s) 用于将字符串 s 反转

mysql> select REVERSE('abcd');

55e68ebe382a6373955dede35346c177.png

16、返回指定位置的字符串的函数

ELT(n, s1, s2, s3, .....) 用于返回第 n 个字符串,如果 n 超出范围则返回 NULL

mysql> select ELT(3, 'a', 'b', 'c', 'd'), ELT(5, 'a', 'b', 'c', 'd');

49c6b70d392c090032f0c84e941aa173.png

17、返回指定字符串位置的函数

FIELD(s, s1, s2, .....) 用于返回字符串 s 在列表 s1, s2, .... 中 的位置,如果不存在字符串 s 则返回 0 ,如果字符串 s 是 NULL 也返回 0

mysql> select FIELD('hi', 'hihi', 'hey', 'hi', 'bas');

d73ef76c3a31491fe3102aca9db8933a.png

18、返回子字符串位置的函数

FIND_IN_SET(s1, s2) 用于返回字符串 s1 在字符串列表 s2 中的位置

mysql> select FIND_IN_SET('hi', 'hihi,hey,hi,bas'); # 注意s2是一个列表

a6f7edcfab11732fb8d1f3c9dce1222a.png

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

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

相关文章

teststand调用python模块_TestStand 基本知识[10]--在序列中调用代码模块之--LabVIEW

在TestStand调用外部代码模块时,使用频率最高的就是LabVIEW VI。下面调用TestStand Demo程序,可以看到如下图:1. 添加LabVIEW Action步骤,并创建或者加载VI。当添加LabVIEW步骤后,可以通过VI Path加载想要调用的VI(也可以创建模板…

C#事件机制(记住流程)

转自:http://jimmyloveforever.blog.163.com/blog/static/119775247200951303935836/ 1,C#事件机制是基于委托实现的,因此要首先定义一个委托EventHandler:public delegate void EventHandler(object from , myEventArgs e) Syste…

Android Studio 安装配置问题总结

之前一直都是使用Eclipse写Android的,但一直都有听说Android Studio是一个更好的用于开发Android的软件,之前其实也有保存过一些别人写的安装和配置Android Studio的一些教程,在这里也列出来:Android Studio 入门指南;…

说说mysql_说说MySQL权限 - andyqian的个人空间 - OSCHINA - 中文开源技术交流社区

本文首发于个人微信公众号《andyqian》,期待你的关注~前言今天继续MySQL系列文章,讲讲MySQL权限相关的内容。我们都知道,在写系统的时候,都会有权限相关的服务,以达到权限控制的目的。以最简单的权限菜单为例&#xff…

[机器学习笔记] Note1--机器学习简介

阅读本文大约需要 2 分钟 本文结构: 什么是机器学习监督学习(Supervised Learning)非监督学习(Unsupervised Learning)课程小结 这是学习 Andrew Ng 在 Coursea 上的机器学习课程所做的笔记。 什么是机器学习 对于机器学习,并没有一个一致认同的定义…

mysql执行过程五步_简单五步教你搭建MySQL主从复制

环境主机:172.17.0.2从机:172.17.0.3环境:CentOS7MySQL:5.6.38目标:实现主机172.17.0.2到从机172.17.0.3基于Binlog的主从复制目前MySQL提供两种方式主从复制:基于Binlog(我们此篇就是基于Binlog的主从复制…

[机器学习笔记] Note2--单变量线性回归

继续是机器学习课程的笔记,这节介绍的是单变量线性回归算法,线性回归算法也是一个比较基础的算法。 模型表达 首先是以房屋交易问题为例,假设我们回归问题的训练集如下表所示: Size in feet2feet2(x)Price($) in 1000’s (y)21…

linux打印mysql堆栈_第25问:MySQL 崩溃了,打印了一些堆栈信息,怎么读?

问题在 09 问中,我们开启了 coredump 功能,在 MySQL 崩溃时获得了有用的 coredump 信息。那如果没开启 coredump,仅有 error log 中的堆栈信息,我们如何分析有效的信息?实验我们沿用 09 问中的 MySQL 崩溃的场景&#…

[机器学习笔记] Note3--多变量线性回归

继续是机器学习课程的笔记,这节课介绍的是多变量的线性回归。 多变量线性回归 多维特征 上节课介绍的是单变量的线性回归,这节课则是进一步介绍多变量的线性回归方法。 现在假设在房屋问题中增加更多的特征,例如房间数,楼层等…

mysql主键long_MySQL主键设计

[TOC]在项目过程中遇到一个看似极为基础的问题,但是在深入思考后还是引出了不少问题,觉得有必要把这一学习过程进行记录。MySQL主键设计原则MySQL主键应当是对用户没有意义的。MySQL主键应该是单列的,以便提高连接和筛选操作的效率永远也不要…

[机器学习笔记] Note4--逻辑回归

继续是机器学习课程的笔记,这节课会介绍逻辑回归。 分类问题 这节课会介绍的是分类问题,其结果是离散值。分类问题的例子有判断电子邮件是否是垃圾邮件;判断肿瘤是良性还是恶性;判断一次金融交易是否是欺诈等等。 首先从二元的…