一般情况下,我们将函数分成两种,一种是单行函数,另外一种就是分组函数.
(1)一般单行函数是用来进行数值进行处理的,
(2)分组函数又称为统计函数,一般是对一组值进行数理统计的.
首先我们进行的就是单行函数的学习.
为了方便记忆的目的,我们将函数分为下面的几个部分,
[1]字符函数
[2]数学函数
[3]日期函数
[4]其它函数
[5]流程控制函数
字符函数
[1]length()
获取字符串的长度[实际上是获取对应的字节长度]
eg:select length('addd') ---->4
[2]concat()
进行字符串的拼接.
[3]upper() lower
进行字符串的大小写的转换.
[4]substring()
进行函数的截取.
这个函数的重载形式比较多.
一般和java的string很相似.但是索引时从1开始的,截取的是长度.
[5]instr() 获取一个字符串在另外一个字符串中出现的位置.
如果在源字符串中没有,则返回0.也就是说,我们可以根据这个特性判断字符串中是否
包含.
[6]trim()
进行字符串的去除.
[7]lpad 进行左填充. rpad() 实现右填充.
select lpad('aa',10 , '###')
[8]replace() 进行字符串的替换.这个和之前的一致.
数学函数:
[1]round() 四舍五入的形式.
select round(1.63) ----2
select round(-1.45) --- -1
select round(1.567 , 2) --1.57 后面的参数的小数点的精确位数.
[2]ceil() --向上取整
[3]floor()函数 ---向下取整.
[4]truncate(数值) --进行截断.
日期函数
[1]now() 返回当前的时间和日期. (有时间和日期)
[2] curdate() 返回当前的日期(没有时间)
[3]curtime() 返回当前的时间
[4]获取一个日期对象的指定部分
select year(now()) ;
select month(now());
[5]str_to_date('9-13-1999' , '%m-%d-%Y')
以后遇到的可以找一下.
[6]date_format('日期',格式化的形式);
其它函数:
show database() --显示当前使用的数据库;
show user() --显示当前的用户;
流程控制函数:
[1]if函数
select if(10>5 ,'是' , '否') 相当于decode()函数
[2]case 函数的使用:
case 字段
when 常量1 then 语句1
when 常量2 then 语句2
else 默认的情况
end
-------
方式二:
case
when 条件一 then 语句
when 条件二 then 语句
else 语句
end
分组函数:
这个已经非常的熟悉了;
这个需要说明的就是null值的处理.
sum() avg() max() min() 都是忽略null的.
count() 也是会忽略null的.
现在我们就已经知道分组函数都是忽略null值.
需要和distinct 搭配使用.
select count(distinct dept_id ) from employees;
现在我们进行的就是先去重,然后再进行统计.