心心失意 发表于 2018-9-24 15:03:50

java学习(2)--oracle

  1.查询语句中使用函数
  1)数字函数
  round() 用于数字的四舍五入
  trunc() 用于截取
  2)日期函数 sysdate
  select sysdate from dual;--dual为虚表
  2.日期函数相减
  计算员工入职多少天
  select hiredate,name,(sysdate-hiredate) days from emp_xxx;
  计算员工入职多少个月
  select hiredate,name,months_between(sysdate,hiredate) months from emp_xxx;
  3.转换函数
  to_char(日期数据,格式)把日期数据转换为字符数据
  select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')from dual;
  sqlplus中日期的默认格式是:DD-MON-RR
  to_date 将字符串数据按指定格式转换为日期数据
  4.查询结果排序 order by
  5.数据字典 user_tables
  当前账户下有多少个表
  select count(*) from user_tables;
  6.组函数count() avg() sum() max() min()
  与单行函数如round() to_date() to_char() 等不同,单行函数是每行数据返回一个结果
  ,组函数是多行数据返回一行结果。
  7.分组查询 group by 列名:表示按指定列分组查询
  select 后出现的列,凡是没有被组函数包围的列,必须出现在group by 短语中
  按职位分组,每个职位的最高,最低薪水和人数?
  select job,max(salary)max_s,
  min(salary)min_s,
  count(*) emp_num from emp_xxx group by job order by emp_num;
  having子句
  用于对分组后的数据进行过滤。
  注意区别where是对表中数据的过滤;having 是对分组得到的结果数据进一步过滤
  平均薪水大于5000元的部门数据,没有部门的不算在内
  select deptno,avg(nvl(salary,0)) avg_s from emp_xxx
  where deptno is not null
  group by deptno
  having avg_s > 5000;

页: [1]
查看完整版本: java学习(2)--oracle