- 统计函数
select count (1) from students;
//有一条记录就会+1,与count中的数字无关,写count(2)、count(*)都可以
//建议使用count(1)
select count(stu_pwd) from students
//统计单列行数时,null不会被记录
利用不记录null的性质来执行更复杂的计数:
count(case year(hire_date) when 2015 then 1 else null end) ‘2015’,
或者:
select count(if(sal>2000,1,null)) from emp
如果要与某个列并列时,那么count必须搭配group by函数使用:
select job ,count(1) from emp group by job
//此时的count记录查询到的列的条数
//简单的说,就是统计该列在查询结果中出现的次数(每查询到一次符合该列的记录,该列的count就会+1) - 单行函数
##数值处理函数
四舍五入函数:round()
//round (234.5555,2)第二个参数为保留的小数位数,如果没有,则只取整数
求余:mod()
//mod(14,3)
向上取整:ceil()
//ceil(234.1)
向下取整:floor()
//floor(45.56)
随机数:rand()
截取函数:truncate()
//truncate(234.567,2)第二个参数为要保留的小数位,多余的去除
//如果第二个参数为负数,那么将小数点前的对于位数的值变更为0
左补:lpad(需要补充的值,补充的位数,’填充的值’)
//select lpad(salary,10,’0’) from employees
右补:rpad- 字符串处理函数
concat(str1,str2)
//字符串拼接,两个字符串可以是查询的结果
substr(str,参数1,[参数2])
//字符串截取
//如果是一个参数,表示从第n个字符开始截取到最后(不是下标哦)
//如果是两个参数,表示从第n个字符开始,截取m个字符
substring
//字符串截取(同上)
length()
//字符串长度
lower()
//转化为小写
upper()
//转化为大写
replace(str,c1,c2)
//替换,在str中,将所有的c1替换为c2
ifnull(str,替换参数)
//如果str(不一定是字符串)是null,那么就用替换参数替换这个值
//如果不添加替换参数,那么使用一个空串替换 - 日期格式化
select date_format(now(),’%Y年%m月%d日 %H:%i:%s’) from dual
//第二个参数是一个字符串哦
yesr()
//取年份
- 字符串处理函数
- 多行函数
!where后不能直接使用多行函数
avg(num)
//平均值函数
max()
min()
sun()
select avg(salary) ,max (salary),min(salary),sum(salary),count(1) from employees - 高级函数:
if(表达式,v1,v2)
//如果表达式成立,返回v1,不成立返回v2
//相对立的是ifnull(表达式,v1,v2)
!函数不能套用一个查询返回值
//avg(select from **)是错误的!
!函数结算值不能使用别名约束
//e.avg()是错误的,应该是avg(e.)
