相信大家在做一些SQL的代码题时,看题解,很多都用到了MySQL中自带的库函数,今天就来简单说一些MySQL中的常用函数,用起来也是很简单的。
1、控制流程函数(等价于if else语句)
控制流程函数,其实就是我们平时写Java代码中,所使用的if else语句。只是这里的写法稍微有点不一样而已。如下:
-- 用法case 参数名
when 比较值 then 执行操作
when 比较值 then 执行操作
else 执行操作
end-- end表示控制流程函数 结束
举个实际的例子:这是一张员工表,
-- 现在公司有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的总和
好啦,本期更新就到此结束啦,我们下期再见吧!!!
版权归原作者 飞人01_01 所有, 如有侵权,请联系我们删除。