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]