105. oracle 经典查询 总结
2019独角兽企业重金招聘Python工程师标准>>>
1.表结构
员工表
部门表
工资等级表
2. 查询
-- 2.1 查询员工 年收入 nvl(comm,0) 第一个参数如果是null就用第二个参数
select e.ename,e.sal*12+nvl(comm,0) from emp e
-- 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')
-- 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)
--2.4 order by 排序
-- 排序 order by 一点要放在最后
select * from emp e order by hiredate desc
/*
排序中的空值问题
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;
--2.5 函数
--伪表,虚表:dual 没有任何的实际意义,只是为了补全Oracle查询语法
--2.5.1 单行函数
--转为字符: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;
-- 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;
--2.5.4 转换函数
--to_char()
--to_date()
select to_number('123') from dual;
--2.5.5 通用函数
--显示员工的工作为中文
-- 方式一
select e.empno,e.ename,e.sal ,
decode(e.job,'CLERK','银行专员','SALESMAN','销售员','MANAGER','职业经理人','其他')
from emp e
2.6 多行函数
select avg(sal) from emp -- 求员工平均工资
select trunc(avg(sal)) from emp -- 求员工平均工资 保留整数部分
select trunc(avg(sal),2) from emp -- 求员工平均工资 保留两位小数
2.7 常用 总要的
/*
总结:在分组统计时候,在select 出现的普通字段,在group by 中必须出现
在group by中出现的普通字段,在select 中可以不出现
*/
--2.7.1 查询每个部门的人数
-- 2.7.2 查询 每个部门的平均工资
--2.7.2 查询部门人数大于 4的 部门
-- 2.7.3 查询部门平均工资大于 2000的部门
/*
having跟where条件区别:
where条件在分组之前查询条件,having在分组后得到结果对结果进一步筛选
*/
转载于:https://my.oschina.net/springMVCAndspring/blog/1807164
105. oracle 经典查询 总结相关推荐
- oracle查询为姓 张,Oracle经典查询案例
1.创建一个学生管理数据库,名称为student 2.最少包含一下三张表 S (SNO,SNAME)学生关系.SNO 为学号,SNAME 为姓名 C (CNO,CNAME,CTEACHER) 课程关系 ...
- oracle经典查询
1.检索出所有成绩为空的学号,课号. select sno,cno from score where grade is null 2.查看1998年出生的学生信息,查询结果以学号升序排列. selec ...
- oracle 存储过程 胡勇,Oracle SQL:经典查询练手第二篇
本文与大家共同讨论与分享ORACLE SQL的一些常用经典查询,欢迎大家补充,同时你认为有那些经典的也可分享出来.在本文中,对每一个问题,你要是认为有什么更好的解决方法也欢迎你及时提出.交流与分享才能 ...
- [推荐推荐][提供下载]ORACLE SQL:经典查询练手系列文章收尾(目录篇)
[推荐推荐][提供下载]ORACLE SQL: 经典查询练手系列文章收尾(目录篇) --通过知识共享树立个人品牌. 通过近一个月的努力,<经典查询练手系列>也快告一段落,但并不代表结束,以 ...
- [推荐]ORACLE SQL:经典查询练手第三篇(不懂装懂,永世饭桶!)
[推荐]ORACLE SQL:经典查询练手第三篇(不懂装懂,永世饭桶!) [推荐]ORACLE SQL: 经典查询练手第三篇(不懂装懂,永世饭桶!) --通过知识共享树立个人品牌. 本文与大家共同讨论 ...
- [强烈推荐]ORACLE SQL:经典查询练手第四篇(不懂装懂,永世饭桶!)
[推荐]ORACLE SQL: 经典查询练手第四篇(不懂装懂,永世饭桶!) --通过知识共享树立个人品牌. 本文与大家共同讨论与分享ORACLE SQL的一些常用经典查询,欢迎大家补充,同时你认为有那 ...
- oracle经典练习题--【高级查询】
经典练习题–[高级查询] 今天我分享的是关于Oracle高级查询的经典练习题 –1.查询emp表中的所有信息 select * from emp –2.显示emp表的雇员名称和工资. select E ...
- 经典查询练手第二篇(不懂装懂,永世饭桶!)
本文与大家共同讨论与分享ORACLE SQL的一些常用经典查询,欢迎大家补充,同时你认为有那些经典的也可分享出来.在本文中,对每一个问题,你要是认为有什么更好的解决方法也欢迎你及时提出.交流与分享才能 ...
- 【oracle】oracle经典sql,exception,database link纠错
[oracle]oracle经典sql,exception,database link纠错 1111-01 oracle经典sql,exception,database link纠错 1.给表tabl ...
最新文章
- 把自己朝九晚五的工作自动化了,有错吗?
- 每天2小时,吃透 985博士总结的这套保姆级TensorFlow + PyTorch笔记(20G高清/PPT/代码)...
- SpringBoot 嵌入式Servlet容器
- 我在编写《微软System Center 2012 R2私有云部署实战》中应用的一些小技巧
- hive 多用户访问模注意问题
- otis电梯服务器tt使用说明_南充私人电梯
- 基于WF4的新平台-流程模式-(6)动态串行
- 8.4 Change Reference to Value(将引用对象改为值对象)
- 苹果 AirPods 固件更新,这个新功能上线!
- FEA-Net论文梳理
- 无法在驱动器0分区上安装windows 解决方法
- java编程新手初学者入门学习,看什么书比较好
- Linux系统进程优先级——计算方式
- UEFI开发探索97 – EDK2模拟器搭建网络环境
- AWK中的OFS的问题
- Fortify白盒神器20.1.1安装教程
- vs+cmake完美编译RTS游戏,类似魔兽争霸源码
- Win10显示器驱动程序无法启动
- manjaro kde安装 配置教程
- 库存出现负数 mysql_MySQL处理高并发,防止库存超卖库存出现负数