DQL语言的学习(四)
四、常见函数的使用
(一)单行函数
1.字符函数
length
select length('曾小贤');//中文占三个字符,英文占一个字符
concat
select concat(name,'_',telephone) from students;
upper, lower
select upper('ruki');
select lower('RUKI');
substr(substring)
select substr('曾小贤爱上了胡一菲',6) out_put;//索引从1开始,截取从第六个开始的字符
select substr('曾小贤爱上了胡一菲',1,3) out_put;//截取第一个到第三个字符
instr
select instr('陆展博爱上了胡一菲','胡一菲') as out_put;//返回字符串第一次出现的索引
trim
select length (trim(' 关谷神奇 ')) as out_put;//去掉前后空格
select trim('a' from 'aaaaaaaaaaaa关aaaaaaaaa谷aaa神奇aaaaa') as out_put;//去除指定字符串
lpad,rpad
select lpad('陈美嘉',2,'*') as out_put;//用指定字符实现左填充制定长度
select rpad('陈美嘉',2,'*') as out_put;//用指定字符实现右填充指定长度
replace
select replace('曾小贤爱上了诺澜','诺澜','胡一菲') as out_put;//全部元素的替换
2.数学函数
round四舍五入
select round(1.43);
ceil向上取整
select ceil(-2.423);
floor向下取整
select floor(3.234);
truncate 截断
select trancate(1.3745,1);//小数点后保留几位
mod取余
select mod(10,-3);//被除数为负则结果为负
3.日期函数
select now();//当前时间,包括日期和时间
select curdate();//当前系统日期,不包含时间
select curtime();//当前系统时间,不包含日期
select year('1998-8-20');//还有month,hour,day等
str_to_date将字符通过指定格式转换成日期
select str_to_date('8-20 1998','%c-%d %Y') as out_put;
date_format将日期转换成字符
select date_format(now(),'%y年%m月%d日') as out_put;
datadiff返回两个日期相差的天数
4.其他函数
select version();
select database();
select user();
5.流程控制函数
if函数
select if(10>5,'大','小');//成立返回前者,不成立返回后者
case使用方法一(类似于switch函数)
case '要判断的字段或表达式'
when '常量1' then 要显示的值或语句1;//如果是语句就要加分号
when '常量2' then 要显示的值或语句2;
else 要显示的值或语句;
end
select salary 原始工资,department_id,
case departemnt_id
when 30 then salary * 1.1
when 40 then salary * 1.2
when 50 then salary * 1.3
else salary
end as 新工资
from employees;
case使用方法二(类似于多重 if)
case//条件不再写在这
when '条件1' then '要显示的值或语句1'
when '条件2' then '要显示的值或语句2'
else '要显示的值或语句n'
end
select salary 原始工资,
case
when salary > 20000 then 'A'
when salary > 15000 then 'B'
when salary > 10000 then 'C'
else 'D'
end as 工资级别
from employees;
(二)分组函数
功能:做统计使用(统计函数、聚合函数、组函数)
sum,avg,max,min,count
select sum(salary) from employees;
特点:
1.sum、avg只能处理数值型,max、min、count可以处理任何类型
2.所有分组函数都忽略null值
3.都可以和distinct组合使用
4.和分组函数一同查询的字段必须是group by后面的字段