MySQLMySQL中常用的函数

Posted 飞人01_01

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQLMySQL中常用的函数相关的知识,希望对你有一定的参考价值。

相信大家在做一些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 部门1 then sal * 1.1 -- 涨10%
		when 部门2 then sal * 1.2 -- 涨20%
		when 部门3 then sal * 1.3 -- 涨30%
		else sal * 1.5 -- 涨50%
	end as newSal -- 表示控制流程函数结束
from emp;

这就是case when的用法,和if else 如初一则,很简单的。一般我们这样使用,会将这个结果起一个别名(as newSal),以这个新的别名作为列名。如果不起别名,默认的会将整个函数语句作为列名,显得比较长。

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

MySQL中也是有三目操作符的,类似于Java中的 num1 == num2? num1 : num2。如下用法:

-- 查询表中,所有人的comm(绩效奖金),为null时,输出0
select ename, if(comm is null, 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位。

select round(20.1112, 2); -- 输出20.11
select round(20.1152, 2); -- 输出20.12

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

select truncate(20.111, 2); -- 输出20.11
select truncate(20.117, 2); -- 输出20.11

mod(N, X),取模运算,N % X。

select mod(10, 4); -- 输出2

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

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

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

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

abs(N),取绝对值。

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

sign(N),判断正负数。正数返回1,负数返回-1,0返回0

select sign(-100); -- 输出-1
select sign(100); -- 输出1
select sign(0); -- 输出0

power(X, Y),计算X的Y次幂。

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

4、日期函数

current_time(),输出当前的时间。

select current_time(); -- 输出17:23:00

current_date(),输出当前的日期。

select current_date(); -- 输出2022-04-07

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

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

5、位运算

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

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

6、聚合函数(组函数)

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

select count(*) from emp; --统计行数,参数可以填列号,列名或*
select max(sal) from emp; --计算sal最大的是多少
select min(sal) from emp; --计算sal最小的是多少
select avg(sal) from emp; --计算sal的平均值
select sum(sal) from emp; --计算sal的总和

好啦,本期更新就到此结束啦,我们下期再见吧!!!

以上是关于MySQLMySQL中常用的函数的主要内容,如果未能解决你的问题,请参考以下文章

MySQL的常用操作更改root密码连接MySQLMySQL常用的命令

设置更改root密码连接MySQLMySQL常用的命令

MySQLMySQL常用指令

设置更改root密码连接mysqlmysql常用命令

mysqlmysql 常用建表语句

MySQL常用操作设置更改root密码连接MySQLMySQL常用命令