0


【MySQL】MySQL中常用的函数

相信大家在做一些SQL的代码题时,看题解,很多都用到了MySQL中自带的库函数,今天就来简单说一些MySQL中的常用函数,用起来也是很简单的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8XUBm2Jj-1649324088221)(image\MySQL常用函数.png)]

1、控制流程函数(等价于if else语句)

控制流程函数,其实就是我们平时写Java代码中,所使用的if else语句。只是这里的写法稍微有点不一样而已。如下:

-- 用法case 参数名
    when 比较值 then 执行操作
    when 比较值 then 执行操作
    else 执行操作
end-- end表示控制流程函数 结束

举个实际的例子:这是一张员工表,

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1TrnIogf-1649324088222)(image/image-20220407165101811.png)]

-- 现在公司有3个部门,集体涨薪水,-- 涨幅是 部门1涨10%, 部门2涨20%, 部门3涨30%,其他部门涨50%-- 输出涨薪后,每个人的薪水是多少?select ename, deptno,sal,case deptno -- 以部门作为判断值when 部门1then sal *1.1-- 涨10%when 部门2then sal *1.2-- 涨20%when 部门3then sal *1.3-- 涨30%else sal *1.5-- 涨50%endas newSal -- 表示控制流程函数结束from emp;

这就是case when的用法,和if else 如初一则,很简单的。一般我们这样使用,会将这个结果

起一个别名(as newSal)

,以这个新的别名作为列名。如果不起别名,默认的会将整个函数语句作为列名,显得比较长。

MySQL中的三目操作符if(expr1, expr2, expr3)

MySQL中也是有三目操作符的,类似于Java中的

num1 == num2? num1 : num2

。如下用法:

-- 查询表中,所有人的comm(绩效奖金),为null时,输出0select ename,if(comm isnull,0, comm)from emp;

2、字符串函数

concat(str1, str2)

,字符串拼接,类似于C语言中的strcat()函数。

select concat('hello ','world');
upper(str), lower(str)

,将字符串转换为大小写字母,类似的Java中也是有相应的操作的。

select upper('hello world');-- 转大写select lower('HELLO WORLD');-- 转小写
trim(str)

, 去除字符串的前后空格。

select trim(' hello ');-- 去除前后的空格select ltrim(' hello ');-- 去除左侧的空格select rtrim(' hello ');-- 去除右侧的空格
substring(str, index, len)

,截取字符串,切记index是从1开始计数的,而不是我们习惯的下标0

select substring('hello world',1,5);-- 输出hello
length(str)

,计算字符串的长度

select length('hello');
instr(主串,子串)

,返回子串在主串中的位置。类似于Java中的indexOf方法

select instr('hello world','world');-- 输出7

3、数值函数

round(N, X)

,将N四舍五入,小数点后保留X位。

selectround(20.1112,2);-- 输出20.11selectround(20.1152,2);-- 输出20.12
truncate(N, X)

,截断。对N进行截断,小数点后保留X位。

selecttruncate(20.111,2);-- 输出20.11selecttruncate(20.117,2);-- 输出20.11
mod(N, X)

,取模运算,N % X。

selectmod(10,4);-- 输出2
ceil(N)

,向上取整。N是一个double类型的参数。

select ceil(20.111);-- 输出21select ceil(20.911);-- 输出21
floor(N)

,向下取整。N是一个double类型的参数。

select floor(20.999);-- 输出20select floor(20.5);-- 输出20
abs(N)

,取绝对值。

select abs(-21);-- 输出21select abs(-20.5);-- 输出20.5
sign(N)

,判断正负数。正数返回1,负数返回-1,0返回0

select sign(-100);-- 输出-1select sign(100);-- 输出1select sign(0);-- 输出0
power(X, Y)

,计算X的Y次幂。

select power(2,3);-- 2的3次幂,输出8

4、日期函数

current_time()

,输出当前的时间。

selectcurrent_time();-- 输出17:23:00
current_date()

,输出当前的日期。

selectcurrent_date();-- 输出2022-04-07
current_timestamp()

,输出当前的日期和时间。

selectcurrent_timestamp();-- 输出2022-04-07 17:23:00

5、位运算

MySQL中也是支持位运算的,比如按位与、按位或、按位异或等等。

select20&21;select20|21;select20^21;select20<<1;select20>>1;select2&(~2+1);select bit_count(20);-- 计算20的二进制中,有多少个1

6、聚合函数(组函数)

聚合函数,也叫组函数,经常搭配着分组查询(group by)来使用。

selectcount(*)from emp;--统计行数,参数可以填列号,列名或*selectmax(sal)from emp;--计算sal最大的是多少selectmin(sal)from emp;--计算sal最小的是多少selectavg(sal)from emp;--计算sal的平均值selectsum(sal)from emp;--计算sal的总和

好啦,本期更新就到此结束啦,我们下期再见吧!!!
在这里插入图片描述

标签: mysql

本文转载自: https://blog.csdn.net/x0919/article/details/124022151
版权归原作者 飞人01_01 所有, 如有侵权,请联系我们删除。

“【MySQL】MySQL中常用的函数”的评论:

还没有评论