105. oracle 经典查询 总结

1.表结构

 员工表

100646_HYL3_3015807.png

部门表

100712_4asE_3015807.png

工资等级表

100745_FbzC_3015807.png

2. 查询

-- 2.1 查询员工 年收入  nvl(comm,0) 第一个参数如果是null就用第二个参数
 select e.ename,e.sal*12+nvl(comm,0) from emp e

101042_u4mo_3015807.png

-- 2.2 查询是 1981年入职的员工 

 select * from emp  e where hiredate  between to_date('1981-1-1','yyyy-mm-dd') and  to_date('1981-12-31','yyyy-mm-dd')

101439_YiB2_3015807.png

-- 2.3   使用了in函数

 --查询员工编号是7369,7654,7566的员工
 --方式一
 select * from emp e where e.empno='7369' or e.empno='7654'
 --方式二
 select *  from emp e where  e.empno in(7369,7654)

103823_KGAS_3015807.png

--2.4  order   by 排序

 -- 排序 order by  一点要放在最后
 select *  from  emp e order by hiredate desc

104132_O1Ha_3015807.png

/*
排序中的空值问题
nulls last  -- 将空值 放在最后
nulls first
*/
select * from emp order by comm desc nulls last;

select * from emp  order by sal desc, hiredate desc;

select * from emp  order by hiredate desc;

112508_rVuT_3015807.png

 

--2.5  函数

--伪表,虚表:dual  没有任何的实际意义,只是为了补全Oracle查询语法

--2.5.1  单行函数

112926_gQ6Y_3015807.png

113029_BT58_3015807.png

113121_XeZu_3015807.png

113229_mV4d_3015807.png

--转为字符:to_char()
select 123,to_char(123) from dual;
select to_char(sysdate,'fmyyyy-mm-dd hh24:mi:ss') from dual;
select to_char(to_date('2026-1-1','yyyy-mm-dd'),'year') from dual;
select to_char(hiredate,'year') from emp;
113345_qlmH_3015807.png

113524_Y4Pr_3015807.png

--  2.5.2 数值函数

--四舍五入
select round(15.66) from dual; -- 16
select round(15.66,1) from dual; -- 15.7
select round(15.66,-1) from dual;  --20
select round(15.66,-2) from dual;  --0

 

--数值截取
select trunc(19.99) from dual; -- 19
select trunc(15.66,1) from dual; -- 15.6
select trunc(15.66,-1) from dual;  --10
select trunc(15.66,-2) from dual;  --0

--数值取余
select mod(15,3) from dual; -- 0
select mod(15,4) from dual; -- 3

--2.5.3 日期函数
select sysdate from dual;

114207_w2mN_3015807.png

 

114440_Zxy7_3015807.png

114543_H2In_3015807.png

 

--2.5.4 转换函数
--to_char()
--to_date()
select to_number('123') from dual;

114725_Ffr9_3015807.png

--2.5.5 通用函数
--显示员工的工作为中文
-- 方式一
select e.empno,e.ename,e.sal ,
decode(e.job,'CLERK','银行专员','SALESMAN','销售员','MANAGER','职业经理人','其他')
 from emp e

115458_UFKt_3015807.png

115641_fZNC_3015807.png

2.6 多行函数

115934_wVQv_3015807.png

120047_BibZ_3015807.png

120126_YXY9_3015807.png

120205_AZkv_3015807.png

select avg(sal) from emp  -- 求员工平均工资  

select trunc(avg(sal)) from emp  -- 求员工平均工资  保留整数部分

select trunc(avg(sal),2) from emp  -- 求员工平均工资  保留两位小数

120410_gRdl_3015807.png

 

2.7 常用 总要的

/*
总结:在分组统计时候,在select 出现的普通字段,在group by 中必须出现
                   在group by中出现的普通字段,在select 中可以不出现
*/

--2.7.1 查询每个部门的人数

121052_D77O_3015807.png

-- 2.7.2 查询 每个部门的平均工资

121209_69Yk_3015807.png

--2.7.2  查询部门人数大于 4的 部门

121635_VPZV_3015807.png

121756_7azf_3015807.png

-- 2.7.3  查询部门平均工资大于 2000的部门

/*
having跟where条件区别:
       where条件在分组之前查询条件,having在分组后得到结果对结果进一步筛选
*/

122457_AQXT_3015807.png

 

 

 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/springMVCAndspring/blog/1807164

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值