目录
前言:
数学函数:
求绝对值:
求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, ...)
# 有多个字符,只会返回第一个