单行函数
单行函数是指对一行数据进行操作返回一条数据的函数,其结果集也只有一个数据。其分类主要按照数据类型进行分类,共分为一下种类
1)字符型:1. 拼接函数:concat(),其作用是将两个字符串进行拼接,起作用与||类似,但是concat只能进行两个字符串的拼接
2.截位函数:substr(),其作用是字符串的截取,第一位参数代表字符串,第二位代表截位的起始位,最后以为代表 截止位。
3.返回字符索引函数:instr(),第一位为字符串,第二位为指定字符。
4.替换函数:replace(),替换指定位数的字符,第一位为目标函数,第二位为被替换函数,第三位为新数据。
5.去除两端字符函数:trim(目标字符 from 目标数据),去掉目标字符串内的指定字符。
2)字符型:1.四舍五入:round(),首位参数代表目标数据,第二位代表保留位数,第二位可以为负数,代表保留小数点前几位。
2.截断函数:trunc(),其用法与四舍五入类似,单不会进行取舍。
3.取余函数:mod(被除数,除数),其结果为取到的余数。
3)日期型:1.to_date(‘20010101’,’yyyymmdd’):字符串转换日期类型
2.to_char(20010101,’yyyymmdd’):日期类型转换为字符串
在Oracle中标准的日期类型是:日-月-年。
4)功能型:1.decode(value,a,A,c,C,E),该函数用于数据的判断,类似与java中的switch语句,当value的值与a相等时,返回A,当value与c相等时,返回C,否则返回E。
2.case语句:case a when 1 then 执行代码;
when 2 then 执行代码;
else 执行代码;
end;
3.nvl(字段,值):该函数可以将该字段内的空值赋成0;
4.nvl(字段,值1,值2):该函数可以将该字段内的非空值赋值为1,空值赋成2
聚合函数
聚合函数是指多行数据经过函数处理,返回一行结果,并且可以通过不同的分组条件进行结果集的分组。
1.count()count函数用来计算该字段共有多少条数据,但是在查询中,并不会记录为null的数据,所以得到的数据并不准确,可以通过计算rowid来进行计数(rowid表示伪列),其内存储的是每条数据的物理地址,所以通过统计伪列可以准确的统计表内的数据数量。
2.sum() sum函数用来计算某个字段内的数据之和,在括号内也可以进行运算,统计出来的结果为括号内的运算结果的和,可以通过分组条件,求组不同组内的和。
3.min() 求某个字段下的最小值,可以通过条件求取不同组内的最小值。
4.max() 求取某个字段下的最大值,可以通过条件求取不同组内的最大值。
5.avg() 求去某个字段的平均值,在求总数时不会计算null,在做除法时也不会算为null的数据,所以一般会与nvl()函数进行连用,保证数据的准确性。
分组函数
当查询当中包含聚合函数,且需要进行分组时(根据某一项将数据分组,例如获取每个班级的最高分即按照班级分组,求出最高分)需要使用聚合函数,分组关键字为group by 分组条件可以是查询内容中的非聚合函数或是表中的其他字段。当聚合函数用在条件当中时,需要将where换为having,其他常规条件仍用where关键字。因group by 在having后会影响排序的效率,所以一般使用如下顺序:select 字段,聚合函数 from 表 where 限制条件 group by 字段 having 聚合函数 order by 字段