常见函数的学习
概念:java中的方法,将一组逻辑语句封装在方法体中,对外暴露方法名
好处:隐藏了实现细节,提高代码的重用性
调用:select 函数名() from 表;
特点:叫什么(函数名)
干什么(函数功能)
分类:
- 单行函数:concat,length,ifull等
- 分组函数(又称为统计函数/聚合函数)–一组织传出一个值
字符函数
Length:获取参数值的字节个数
Concat:拼接字符串
Upper、lower
Select UPPER (“john”);//转换为大写
将姓变为大写,名变为小写,然后拼接
Select concat(upper(last_name),LOWER(first)name)) 姓名 from employees;
Substr、substring 截取字符串
注意:索引从1开始
截取从指定索引出后面所有字符
Select substr(‘李莫愁爱上了陆展元’,6) out_put;;
截取从指定索引指定字符长度的字符
Select substr(‘李莫愁爱上了陆展元’,1,3) out_put;;
姓名中首字符大写,其他字符小写,然后用下划线拼接,显示出来
Select concat(substr(last_name,1,1),’_’,substr(last_name,2))) out_put
From employees;
Instr:用来返回子串第一次出现的索引,如果找不到就是返回0
Select instr(‘杨不悔爱上了殷六侠’,’殷六侠’) as out_put;
Trim:去除空格
Select trim(‘ 张吉山 ‘) as out_put;
这是去掉了前后的字符
Select trim(‘a’ from ‘aaaaaaaa张佩珊aaaaaaaaa’) as out_put;
Lpad:用指定的符实现填充指定长度
Select lpad(‘殷素素’,10,’*’) as output;
Rpad:右填充
Replace:替换
Select replace(‘张无忌爱上周自若’,’周自若’,’赵敏’) as out_put;
数学函数
Round 四舍五入
Select round(1.63);
Select round(1.567,2);//小数点后面保留两位
Cell:向上取整,返回大于等于该参数的最小整数
Floor 向下取整
Truncate 截断
Select truncate(1.653234,1);//不管后面是什么都不要了
Mod 取余
日期函数
Now 返回当前系统日期+时间
Select now();
Curdate 返回当前系统日期,不包含时间
Select curdate();
Curtime 返回当前的时间,不包含日期
Select curtime();
可以获取指定的部分,年,月,日,小时,分钟,秒
Select year(now()) 年;
分组函数
可以和distinck搭配使用,实现去重运算
Select sum(distinck salary) from employes;
去重之后再求和
Count函数的单独介绍
Select count(salary) from employees;
Select count(*) from employees;
任何列只要是非空的都可以统计上
统计行数
Select count(1) from employees;
统计1的个数
Select count(“翠微”) from employees;
相当于常量,但是一般都是填1
效率:
MYISAM 存储引擎下,count()的效率高
INNODB 存储引擎下,count()和count(1)差不多,但是比count(字段)要高一些
和分组函数一同查询的字段有限制
Select avg(salary),employee_id from employees;
这是不对的,avg表示的是一个值,而employee_id是107个值
和分组函数一同查询的字段要求时group by后的字段。
查询公司员工工资的最大值,最小值,平均值,总和
Select max(salary) mx_sal,min(salary) mi_sal, avg(salary) ag_Sal,sum(salary) sum
From employees;
查询员工表中的最大入职时间和最小入职时间的相差天数(diffence)
Max(hiredata) min(hiredate)
Select datediff(‘2017-10-1’’2017—29’);
Select datediff(max(hiredate),min(hiredate)) difference
From employees;
查询部门编号为90的员工个数
Select count(*)
From employees
Where deparment_is=90;