目录
一、单行函数
1.特点:返回结果是1条记录
2.分类:数学函数、字符串函数、日期函数
二、聚合函数(重点)
三、分组函数(重点)
1.语法格式
2.示例代码
四、加密函数
一、单行函数
1.特点:返回结果是1条记录
2.分类:数学函数、字符串函数、日期函数
2.1 数学函数
select PI();#圆周率
select CEIL(12.3);#向上取整,结果13
select CEIL(-12.3);#结果-12
select FLOOR(12.3);#向下取整,结果12
select ROUND(12.3);#按四舍五入取整数,结果是12
select ROUND(12.54,1);#1表示从小数点开始向右第一位开始四舍五入,结果是12.5
select ROUND(12.54,-1);#-1表示从小数点开始向左第一位开始四舍五入,结果是10
select abs(-10);#去绝对值
select RAND();#随机数
select POW(2,3);#幂运算
select SQRT(25);#开方
2.2 字符串函数
select lower(str) from emp;#表达式作为参数
select LOWER(ename) from emp;#字段作为参数
select lower('THIS IS');#值作为参数
select upper('this is');#值作为参数
select CONCAT(str1,str2,...);#连接字符串
select CONCAT('e-',ename) from emp;#连接字符串
select substr('abcdef',1,3);#取字串,从第1个位置开始,取3个,结果abc
select replace('abcdef','cd','aa');#替换把第2个参数值替换成第3个参数值
select trim(' aa ');#去除前后空格
select length('abc');#取字符串的长度
select length(ename) from emp;
select LPAD(‘abc’,10,'*');#左填充:第2个参数表示指定长度,第3个参数表示填充内容
select RPAD(‘abc’,10,'*');#右填充
2.3 日期函数
select NOW();#当前时间
select SYSDATE();#系统日期
select current_timestamp();#当前时间戳
select current_time();#当前时间
select current_date();#当前日期
select year('1998-09-10');#取年份
select year(new());#取当前年份
#日期计算
select date_add(new(),interval 2 day);#两天以后的日期时间
select date_add(new(),interval 2 month);#两个月以后的日期时间
select last_day('2018-02-04');#计算参数日期的月份的最后一天的日期
二、聚合函数(重点)
1.常用的聚合函数
count():统计数目
sum():求和
max():求最大值
min():求最小值
avg():求平均值
2.示例代码
select count(*) from emp;#统计记录数
select count(1) from emp;#统计记录数
select count(comm) from emp;#统计非空字段的数目
select sum(sal) from emp;#求和
select max(sal) from emp;#求最大值
select min(sal) from emp;#求最小值
select avg(sal) from emp;#求平均值
三、分组函数(重点)
1.语法格式
group by 分组条件 [having 检索条件];
说明:
- 经常和聚合函数一起使用
- having 表示在分组之后实现检索
- 在使用分组时,select 后面可以跟聚合函数,分组字段,但其他字段不能写。
- 注意:有多少个分组就返回多少条记录。
2.示例代码
#每个部门平均工资,每个部门返回一个平局值
#select deptno,avg(sal),ename from emp group by deptno;#select后面不能跟ename字段
select deptno,avg(sal) from emp group by deptno;
#注意:条件的执行顺序是从左往后执行
#where必须放在group by之前使用
#where中不能使用聚合函数
#求平均工资大于2000的部门编号和平均工资
select deptno, avg(sal) nsal from emp group by deptno having nsal > 2000;
四、加密函数
#java中的加密可逆的有:base64.encode() Base64.decode();不可逆的有:MD5
select MD5('root');
select SHA('root');
#数据库用户密码就是用这个加密的
select PASSWORD('root');
#用处:
#1.在以后开发系统中,涉及到用户密码均需加密
#2.登录验证时,使用相同的加密函数计算后即可进行对比验证