zoukankan      html  css  js  c++  java
  • oracle数据库-SQL语言开发与运用(四)

    实战05 开发之常用函数

    五个实战系列所有的课程:

    本课重点:都是oracle的内置函数

     1、聚合函数-数据统计

    (1)max 取列和表达式最大值

    select max(salary)from yg;

    select max(distinct salary)from yg;遇见重复的,只取一次值

    (2)min 取列和表达式最小值

    select min(salary)from yg;

    select min(distinct salary)from yg;

    (3)avg 取列和表达式平均值

    select avg(salary)from yg;

    select avg(distinct salary)from yg;

    (4)sum 求列和表达式总和

    统计每个部门的总工资

    select department_id,sum(salary) from yg group by department_id order by 2 desc;

    (5)count 求行数总和

    select count(*) from yg;

    select count(*) from yg where manager_id =120;

    select count(distinct manager_id) from yg;

    (6)其他:标准差stddev、协方差、中位数

    2、分组函数 group by ,having

    group by (分组统计)+ having(限制分组显示结果)+ max

    (1)简单的分组函数应用

    统计各个国家名字的长度length、avg、round(四舍五入)

    select country_name,length(country_name)from gj group by country_name;

    (2)多列分组数据

    日期到字符的转换函数,--to_char,count

    select to_char(end_date,'yyyy') year,job_id,count(*)from jl group by to_char(end_date,'yyyy'),job_id order by 1;

    (3)使用having子句

    1.对行进行分组 2.应用组函数 3.显示符合having子句条件的组

    查招聘大于等于15个员工在星期几:

    select to_char(hire_date,'Day') 星期几,count(*) from yg group by to_char(hire_date,'Day')having count(*) >=15;

    统计部门里最大工资大于10000的

    select department_id,max(salary)from yg group by department_id having max(salary) >10000 order by 2;

    3、字符函数--运算和截取

    3.1 round(n,[m])m等于0表示整数,m<0小数点的前m位,m>0小数点的后m位。

    select salary,salary+0.2 from yg;

    select salary,round(salary+0.2) from yg;

    select salary,round((salary+0.867),-4) from yg;

    select salary,round((salary+0.867),2) from yg;

    3.2 trunc(n,[m]) 截取数字 m等于0表示去掉小数位,m<0小数点的前m位,m>0小数点的后m位。

    select salary,trunc(salary+0.2) from yg;

    select salary,trunc((salary+0.867),2) from yg;

    3.3 ceil(n)返回大于等于数字n的最小整数。

    3.4 floor(n) 返回小于等于数字n的最小整数

    3.5 length(n) 返回字符串的长度

    4、转换函数--大小写转换

    4.1 lower 小写转换

    select first_name,last_name from yg where first_name like '%li%';

    select first_name,last_name from yg where lower(first_name) like '%li%';

    4.2 upper 转换为大写

    4.3 initcap 将第一个字母大写,其余的都小写

    4.4 综合运用

    5、转换函数--日期字符数字转换

    5.1 to_char 把日期数字转换为字符串

    5.2 to_date 把字符串转换为数据库中的日期类型

    --Year: yy 16,yyy 016,yyyy 2016

    --Month: mm 11,mon 11月/nov,month 11月/november

    --Day: dd 当月第几天 02,ddd 当年第几天 02,dy 当周第几天 星期五/fri,day 当周第几天 星期五/friday

     ---Hour: hh 12小时进制 01,hh24 24小时进制 13

          --24小时的时间范围: 0:00:00 -23:59:59,12小时的时间范围不怎么用

    ---Minute: mi 60进制 45

    ---Second: ss 60进制 25

    select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

    5.3 to_number 把字符转换为数字

    6、日期函数

    6.1 sysdate查询系统当前时间

    select sysdate from dual;

    6.2 add_months 增加/减去月份

    select add_months(sysdate,-1) from dual;

    select add_months(sysdate,+1)from dual;

    6.3 last_day 返回日期的最后一天

    select last_day(add_months(sysdate,+1)) from dual;

    6.4 months_between 时间2-时间1的月份

    6.5 next_day

    星期日=1,一=2,依次类推

    6.6 current_date 当前日期

    6.7 current_timestamp 当期的日期

    6.8 sessiontimezone 时区

    6.9 trunc(for date)

    select trunc(sysdate,'YYYY') from dual;

    select trunc(sysdate,'MM') from dual;

    select trunc(sysdate,'D') from dual;

    7、集合函数--合并两张表

    7.1 union(无重并集,去重排序)

    7.2 union all(有重并集,不去重排序)

    7.3 intersect (交集)

    7.4 minus (差集)

     8、分析函数-使用decode函数

    decode(条件,值1,返回值1,值2,返回值2,)

  • 相关阅读:
    JS 做的鼠标放大镜(初级)
    用JS做关灯游戏(初级)
    JS 做时钟
    Magic Powder
    (记忆化搜索)Jury Compromise (poj 1015)
    (求凹包) Bicycle Race (CF 659D) 简单题
    Phalanx (hdu 2859)
    第十四个目标 (fzu)
    (树形dp)鸡毛信问题 (fzu 1227)
    (最大m子段和) Max Sum Plus Plus (Hdu 1024)
  • 原文地址:https://www.cnblogs.com/maowuyu-xb/p/11504373.html
Copyright © 2011-2022 走看看