sql大数据 基础(聚合函数)

聚合函数

sum() 求平均
avg() 求和
count() 数量
max() 最大值
min() 最小值

  1. dual 虚表,没有实际意义,为了不全select的语法

例:select * from dual;
select 245346+234657 from dual;

  1. nvl() 处理空值 *

例:nvl(列,值1) 若该列为空,则返回值1,否则返回该列值本身
select nvl(comm,0) from emp;

  1. 数值类型函数
  1. abs() 返回绝对值
    例:select abs(12),abs(-12),abs(0) from dual;
  2. sign() 判断正负,返回结果只有三种情况 -1,0,1
    例:select sign(12),sign(-12),sign(0) from dual;
  3. ceil() 和 floor() 前者返回大于它的最小整数,后者返回小于它的最大的整数(数轴)
    例:select ceil(3.14),floor(3.14) from dual;
    select ceil(-3.14),floor(-3.14) from dual;
  4. mod(x,y) 取余函数,常用场景:判断奇偶 *
    例select mod(5,2) from dual;
  5. round(x,y) 和 trunc(x,y)
    前者四舍五入,后者直接截取 y指保留的精度 select round(145.567,2) from dual;
  1. 字符类型函数
  1. concat() 连接两个字符串(只能连接两个字符串) || 连接符(不限制个数)*
    例1:select concat(empno,ename) from emp;
    例2:select concat(empno,ename)||sal||comm from emp;
    例3:select concat('你好: ',ename) from emp;
  2. upper()/lower()/initcap() 转换字符串为大写/小写/首字母大写,其他字母小写
    例1:select upper(‘asdfZXCV’) from dual;
    例2:select lower(‘asdfZXCV’) from dual;
  3. length() 字符串的长度 *
    例1:select ename,length(ename) from emp;
    例2:select length(’ asdf ') from dual;
    注:空格算一位
  4. trim()/ltrim()/rtrim() 去字符串两端的空格/左边/右边 *
    例:select trim(’ asd f ‘),ltrim(’ asd f ‘),rtrim(’ asd f ') from dual;
  5. replace(目标字符串,要查找的值,目标值) 替换函数 *
    例1:select replace(’ asd f ‘,’ ‘,’’) from dual;
    例2:将员工姓名中S替换成s
    select ename,replace(ename,‘S’,‘s’) from emp;
    例3:将员工姓名中的E去掉
    select ename,replace(ename,‘E’) from emp;
  6. substr(目标字符串,从第几位开始,截取多少位) 截取函数 **
    注:如果不写截取多少位,则默认截取到最后
    例1:‘asdfghjklasdfrtyuio’ 找出 ‘dfgh’
    例2:截取部门地址的后两位
    select loc,substr(loc,length(loc)-1) from dept;
  7. instr(目标字符串,目标,从第几个开始,查第几个) 找出目标所在的位置 **
    select instr(‘asdfghjklasdfrtyuio’,‘a’,1,2) from dual;
  1. 日期类型函数

日期-日期=天数

  1. sysdate 系统日期 yyyy-mm-dd hh:mm:ss / localtimestamp 时间戳
    例:select sysdate from dual;
  2. add_months (date,n) 返回在日期的基础上加N个月后的新日期
    例:select sysdate,add_months(sysdate,3) from dual;
    展示员工表中员工的转正日期(6个月试用)
    例:select hiredate,add_months(hiredate,6) from emp;
  3. last_day() 每个月的最后一天
    例:select last_day(sysdate) from dual;
  4. months_between(日期1,日期2) 两个日期相隔的月数 日期1-日期2
    例:select months_between(sysdate,hiredate) from emp;
  5. round() /trunc() 以每天中午12点为临界点
    例:select round(sysdate) from dual;
  1. 转换函数

1) to_char() 字符转换函数
2) to_date 日期转换函数
例:找出1980/12/17入职的员工
select * from emp where hiredate = to_date(‘1980/12/17’,‘yyyy/mm/dd’);
3) to_number() 隐式转换 数字转换函数

你可能感兴趣的:(sql,大数据,数据库,mysql)