当前位置: 首页 > article >正文

MySQL:数学函数和字符串函数

目录

前言:

数学函数:

求绝对值:

求PI:

求平方根:

求余数:

取整:

随机数:

四舍五入:

只舍不入:

返回参数符号:

幂运算:

对数:

三角函数:

角度与弧度相互转换:

正弦和反正弦:

余弦和反余弦:

字符串函数:

计算字符串中字符个数,以及字符串的长度:

合并字符串:

直接合并:

合并,并添加分隔符:

替换字符串:

x 为正整数:

x 为负数:

x 为0:

 x 为 1:

其中一个参数为NULL:

 字母大小写转换:

获取指定长度字符串:

填充字符串:

删除外侧空格:

重复字符串:

替换字符:

比较字符串大小:

获取字符串:

匹配字符串开始位置:

反转字符串:

返回输入字符串中,指定位置的字符串:

 返回输入字符串中,指定字符串的位置:


前言:

仅作为日常学习积累,方便日后查找。

数学函数:

求绝对值:

ABS(X)

求PI:

 PI()

求平方根:

SQRT(x)

# 负数没有平方根,返回NULL

求余数:

 MOD(x,y):x是被除数,y是除数,返回的结果是余数

取整:

 CEIL(x),      CEILING(x),     FLOOR(x)

这三个的名字起得很有意思,前两个是“天花板”,后一个是“地板”。那么我们的数就是中间的“空气”,用ceil 和 ceiling 就是取“比输入数值大的最小整数”,返回的数值是大于输入数值的整数;用floor 就是取“比输入数值小的最大整数”,返回的数值是小于输入数值的整数。

前两个(ceil 和 ceiling)是一样的,返回的值大于输入的值,取大于x的最小整数。

# 注意不要和四舍五入混在一起

随机数:

RAND()       RAND(x)

可以有参数,也可以无参数。

无参数则是随机取一个(0~1)的浮点数,重复调用RAND()函数,返回的浮点数各不相同;

有参数则也是随机取一个(0~1)的浮点数,重复调用RAND()函数和同一参数,返回的浮点数数值相同。

四舍五入:

ROUND(x)

不保留小数,直接取整,四舍五入

只舍不入:

ROUND(x, y)

y为正数时,保留小数点后 y 位;y 为负数时,小数点后全部舍弃,从个位向前数第y位,全部归0,如果超出范围,直接归零。

TRUNCATE(x,y)

和ROUND(x, y)的作用一样。

返回参数符号:

SIGN(x)

这里的正数负数,用-1 和 1 来表示:

幂运算:

POW(x, y);   POWER(x, y);  EXP(x)

# EXP 返回 e 的 x 次方

对数:

a 的 x 次方 = N

那么,x 就是以 a 为底,N 的对数。

LOG()

底数是 e 或者是 10

三角函数:

角度与弧度相互转换:

RADIANS(x)  角度转换成弧度

DEGREES(x)  弧度转化为角度

当然,一个pi是180,那么求其他角度也可以这样尝试:

正弦和反正弦:

好的,来到了我最不擅长的部分了。

正弦指的是三角形中任意一个锐角所对的边和斜边的比值。

MySQL中的正弦函数指的是:SIN(x)  -1 <= x <= 1

x 表示的是“弧度值”

余弦和反余弦:

这部分在后来补齐,我需要进一步学习(复习)一下三角函数……

字符串函数:

计算字符串中字符个数,以及字符串的长度:

CHAR_LENGTH(str)

# 输入的字符串要带引号

LENGTH(str)

# 返回字符串的长度

# 输入的是‘英文+数字’字符串的话,那么这两个函数的差别不大

合并字符串:

直接合并:

CONCAT(str1, str2, ....)

如果对DataFrame 有一些了解的话,看到concat 有没有很眼熟……

该函数直接将字符串连接起来,中间没有任何间隔字符

# 小酸一下

有NULL会怎么样呢?

# 如果NULL 作为字符串出现,是没什么问题的:

# 这里因为表头太长,换了个简洁的名字。 

# 如果NULL不是作为字符串出现,就全都为NULL:

 # 这说明,对待爱情,一定要细心呵护,小心培养,千万不要触碰原则

合并,并添加分隔符:

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


# 再酸一下 

同样,出现NULL会有什么情况呢?

# 直接剔除,啥都没留 

# 这说明,在爱情里,一些非原则性问题会得到谅解

# 不胡扯了

替换字符串:

INSERT(str1, x, len, str2)

str1:原字符串(要被修改的那个)

x:替换位置,即从哪里开始替换,这是一个数

len:替换长度

str2:替换字符

如果x <= 0,就直接返回原来的字符,替换失败。

如果有一个参数为NULL,那么返回值也为NULL

x 为正整数:

x 为负数:

x 为0:

 x 为 1:

其中一个参数为NULL:

 

 字母大小写转换:

LOWER(str)   LCASE(str)

UPPER(str)    UCASE(str)

获取指定长度字符串:

LEFT(str, x)    从左开始获取

RIGHT(str, x)    从右开始获取

 

填充字符串:

LPAD(str1, len, str2)   从左边开始填充

LPAD(str1, len, str2)   从右边开始填充

 

# 如果 len 长度小于str1 的长度,就直接截取

删除外侧空格:

LTRIM(str)   删左边

RTRIM(str)   删右边

TRIM(str)   删两边

 

重复字符串:

REPEAT(str, n)  n代表重复的次数

替换字符:

 REPLACE(str, str1, str2)

str  原字符

str1  要被替换的字符

str2   要替换上去的字符

比较字符串大小:

 STRCMP(str1, str2)

相同返回0; str1 小返回 -1; str2 小返回 1;

获取字符串:

SUBSTRING(str, n, len)

MID(str, n, len)

这两个差不多是一样的,

# 如果带有空格,那么空格也算一个字符

# 长度为负数,那么什么都不会输出

 # 起始位置(n)为负数,则从后面开始,最后一个是-1,倒数第二个是-2,以此类推。

 

匹配字符串开始位置:

LOCATE(str1, str)  前面是要匹配的字符串,后面是被匹配的字符串

 POSITION(str1 IN str)

反转字符串:

REVERSE(str)

正序变成倒序

返回输入字符串中,指定位置的字符串:

ELT(X, STR1, STR2, STR3, ...)

X 表示的是“第几个字符串”。 

 

 返回输入字符串中,指定字符串的位置:

FIELD(str, str1, str2, str3, ...)

# 有多个字符,只会返回第一个


http://www.kler.cn/news/18556.html

相关文章:

  • VMware NSX Advanced Load Balancer (NSX ALB) 22.1.3 - 负载均衡平台
  • 从零构建自己的脚手架
  • 【多线程初阶三】简单了解wait和notify方法~
  • [Go语言实战]并发模式runner
  • iOS输入限制表情输入、最大字符、正则过滤
  • Geoffrey Hinton对于AI的警示 20230507
  • SQL 招聘网站岗位数据分析
  • 数据挖掘笔记
  • Spring-AOP
  • 文心一言 VS chatgpt (6)-- 算法导论2.3 1~2题
  • macOS的CAOpenGLLayer中如何启用OpenGL3.2 core profile
  • Oracle监控账号创建【Prometheus】
  • webstorm 创建harthat项目
  • AI 工具合辑盘点(七)持续更新 之 AI 音乐制作工具
  • 【运动规划算法项目实战】如何利用AABB作碰撞检测(附ROS C++代码)
  • SQL学习日记
  • 从文字到语义:文本分词和词性标注的原理与实现
  • Gradio的web界面演示与交互机器学习模型,安装和使用《1》
  • 拐点已至!被比亚迪赶超,大众中国打响「翻身战」
  • 单元测试 - 集成H2 Dao测测试
  • 【Redis7】Redis7 持久化(重点:RDB与AOF重写机制)
  • 名称空间(namespaces)与作用域
  • [LeetCode周赛复盘] 第 344 场周赛20230507
  • 从不同视角来看待API数据接口
  • Unity用脚本获取物体和组件(下)
  • MySQL基础(三)基本的SELECT语句
  • eSIM证书要求-证书验证-EID
  • 第1章 Nginx简介
  • 187页9万字企业大数据治理与云平台实施方案(word)
  • sentinel 随笔 0-责任链