1.单行函数:每一条记录输入值进行计算,并得到相应的计算结果,并返回给用户,即每条记录作为一个输入参数,经过函数计算得到每 条记录的计算结果。 常用的单行函数主要包括字符串函数、数值函数、日期与时间函数、流程函数以及其他函数。
(1)字符串函数(部分):lower(str) upper(str) substring(str,index1,index2)
select ename,job,lower(ename),upper(ename),lower(job) from emp;-- 大小写转换
select substring(ename,1,3) from emp;
(2)数值函数(部分):abs()返回绝对值; ceil()向上取整; floor()向下取整;roung()保留整数
select abs(-9),ceil(5.4),floor(5.6),round(3.94);-- 如果没有where则from dual可以省略
以此类推
select abs(-9),ceil(-5.4),floor(-5.6),round(3.14) from dual; -- dual 伪表(方便练习)
select 10/3,10%3 ,mod(10,3) from dual;
(3)时间与日期函数(部分)
select curdate(),curtime(); -- 返回当前日期,当前时间
select now(),sysdate(),sleep(3),now(),sysdate() from dual -- now()返回当前的时间及日期 sysdate()返回函数执行时的时间和日期
(4)流程函数(部分)
select empno,ename,sal,if(sal>=1500,"high","low") as grade from emp order by sal;-- if-else
select empno ,ename,sal,comm ,sal+ifnull(comm,0)from emp -- ifnull()
select nullif(1,1) ,nullif(1,2) -- 如果相等就返回null,不相等就返回第一个数
select empno,ename,job,-- case等值判断
case job
when 'CLERK' then '店员'
when 'SALESMAN' then '销售'
when 'MANAGER' then '经理'
else '其他'
end '岗位',
sal from emp
select empno,ename,sal,
case
when sal<1000 then "A"
when sal <2000 THEN "B"
when sal<3000 THEN "C"
else "D"
end as 等级
from emp
2.多行函数:指对一组数据进行运算,针对这一组数据(多行记录)只返回一个结果,也称为分组函数。
COUNT() 统计表中记录的数目
SUM() 计算指定字段值的总和
AVG() 计算指定字段值的平均值
MAX() 统计指定字段值的最大值
MIN() 统计指定字段值的最小值
select count(*) from emp;-- 统计表的记录数
select max(sal),min(sal),count(sal),sum(sal),avg(sal) from emp
注意:
多行函数会自动的排除null值
max() min() count() 适合于所有数据类型
sum avg 仅限于 数值类型(整数 浮点)
多行函数会更多的用在分组查询中 group by