oracle:oracle学习案例(五):基础练习
基本oracle语句应用
文章目录
- 1. 字符和日期型数据应包含在单引号中
- 2. 子查询
- 3. 找出和经理一样工资的员工信息(经理不止一个,且工资不同)
- 4. 上述问题的等价形式
- 5. 返回部门最高的平均工资
- 6.查询出每个部门的编号、名称、位置、部门人数、平均工资
- 7. 查询行号
- 8. 分页
- 9.要求查询出每一位雇员的姓名、职位、雇员的直接上级领导的姓名
- 10. 创建子表
- 11.行号练习
- 12.查询每个部门平均薪水的等级 部门编号,部门平均薪水,等级
- ********************** Oracle在线练习平台****************
1. 字符和日期型数据应包含在单引号中
select job,sum(sal) from emp
where job !='SALESMAN'
group by job
having sum(sal)>5000
order by sum(sal) ;select * from emp
where sal>(select sal from emp where ename='SMITH');select * from emp
where sal>(select avg(sal) from emp );
2. 子查询
select * from emp
where job=(select job from emp where ename='ALLEN')
and sal=(select sal from emp where ename='ALLEN');
3. 找出和经理一样工资的员工信息(经理不止一个,且工资不同)
select * from emp
where sal in (select sal from emp where job='MANAGER');
4. 上述问题的等价形式
select * from emp
where sal =any(select sal from emp where job='MANAGER');
select sal from emp e right join dept d on e.deptno=e.deptno
5. 返回部门最高的平均工资
select max(avg(sal) )from emp
group by deptno;select dname,count(*),avg(e.sal)
from dept d left join emp e on d.deptno=e.deptno
group by dname;
6.查询出每个部门的编号、名称、位置、部门人数、平均工资
/*
1.问题:什么时候用多字段分组?(查询的(多个)字段位于非主表时(分组表)时)
2.多字段分组时,groupby后面的字段存在优先级,一般统计函数所在的字段优先;
*/
select d.deptno,dname,count(*),d.loc,avg(e.sal)
from dept d left join emp e on d.deptno=e.deptno
group by d.deptno,dname,loc;-- 上述问题使用子查询 select deptno,dname,b.avgSal,loc
from dept d,(select deptno dn,avg(sal) as avgSal from emp group by deptno) b
where deptno=b.dn;
7. 查询行号
/*
3.问题:为什么用e.*而不用*?
-- * 已经代表全部,再加rownum时会出现矛盾;所以这里需要特别指定;
*/
select rownum,e.* from emp e;
-- 查询前 5 条记录
select rownum,e.* from emp e
where rownum<6;
-- 查询 6-10 条记录
--select rownum,e.* from emp e
--where rownum between 6 and 10;
-- 上述语句会报错,原因是rownum不能同时使用>和<
-- 改进
select * from
(select rownum rm ,e.* from emp e where rownum<11) b
where b.rm>5;
8. 分页
select * from
(select rownum as rm,e.* from emp e where rownum<to_number('&endNum')) b
where b.rm > to_number('&startNum');
9.要求查询出每一位雇员的姓名、职位、雇员的直接上级领导的姓名
select e1.ename,e1.job,e2.ename
from emp e1 left join emp e2 on e1.mgr=e2.empno ;select e1.ename,e1.job,e2.ename,d.dname
from emp e1 left join emp e2 on e1.mgr=e2.empno
left join dept d on e1.deptno=d.deptno;select e1.empno,e1.sal,e1.ename,e1.job,e2.ename,d.dname,d.loc
from emp e1 left join emp e2 on e1.mgr=e2.empno
left join dept d on e1.deptno=d.deptno;
10. 创建子表
create table B as
select * from emp
where sal>=3000;
11.行号练习
-- 先取行号,再排序
select rownum,e.* from emp e order by sal desc;
12.查询每个部门平均薪水的等级 部门编号,部门平均薪水,等级
select *
from salgrade s,(select deptno,avg(sal) as 平均薪水 from emp group by deptno) t
where t.平均薪水>=s.losal and t.平均薪水<=s.hisal
********************** Oracle在线练习平台****************
牛客网数据库sql练习
leetcode
oracle:oracle学习案例(五):基础练习相关推荐
- linux oracle em使用,案例:五步解决linux操作系统Oracle EM乱码的问题
天萃荷净 用户生产环境Linux系统Oracle数据库配置OEM使用时出现乱码情况 如果想以中文显示,则需要修改一些配置文件. 包括三个目录: $ORACLE_HOME/jdk/jre/lib $OR ...
- oracle 恢复学习 案例1 一个数据文件丢失 完全恢复数据库
案例1 数据文件user01丢失 恢复背景: 数据库打开处于归档模式,首先备份数据文件user01.dbf,然后删除user01.dbf 关闭数据库 启动数据库 SQL> startup ORA ...
- Oracle学习篇章一——基础
Oracle学习一--总体基础 一.数据库分类 1.1.数据库分类 1.2.项目中如何合理地使用数据库,可以依据如下三个方面入手 1.3.不同规模类型的数据库区别 二.Oracle概念 三.Oracl ...
- oracle pl sql示例,oracle PL SQL学习案例(一)
oracle PL SQL学习案例(一) [示例1.1] 查询雇员编号为7788的雇员姓名和工资. 步骤1:用SCOTT/TIGER账户登录SQL*Plus. 步骤2:在输入区输入以下程序: /*这 ...
- oracle写转帐的存储过程,Oracle存储过程及块编程基础经典案例
Oracle存储过程及块编程基础案例 pl/sql(procedure language/sql:过程语言)编程是oracle的精髓之所在.跑得慢: 提高应用程序的运行性能,提高效率. 1.作为存储过 ...
- Oracle DBA学习基础篇(一) Oracle体系结构 学习笔记
这里是我通过Oracle DBA实战这本书学习的 Oracle体系结构,大部分是我对书中的内容做的总结,还有遇到不理解的知识点,通过查询资料做的整合.通过这篇博客希望可以让你对Oracle的一些内部原 ...
- Oracle OAF 学习小结(3)- 字段控制 的完整案例开发
相关开发配置详见 Oracle OAF 学习小结(2)- 增删改查/LOV/Button/Sequence 的完整案例开发 需求概述 需求描述 要点1:页面初始化的时候,获取当前用户,并显示在界面. ...
- 【JAVA基础】重新系统学习Java(五)案例一
目录 Java基础知识案例 运算符 身高遗传 红茶绿茶 外卖 if语句 手机以旧换新 三数最小 本息计算 顾客优惠 个人所得税 switch语句 加减乘除 循环语句 猪年年份 输出长方形 输出三角形 ...
- Oracle OAF 学习小结(2)- 增删改查/LOV/Button/Sequence 的完整案例开发
开发配置 了解EBS服务器目录 $JAVA_TOP JSP中可以引用标准Java类库,也可以引用其他Java类库,客户化开发的类库统一放在$JAVA_TOP下,按目录组织.OAF开发的文件都放在这里. ...
最新文章
- Linux存储的基本管理
- 关于Silverlight安装问题之二
- 网易云信音视频技术落地提速,读书郎电话手表成行业先锋
- 6大设计原则之开闭原则
- android 开发 gradle 自己会容易混淆的东西
- linux 二进制安装mysql
- 系统设计与任务分配(团队作业)
- Hive入门学习随笔(二)
- Fiddler2用于手机抓包时的配置方法
- 基于python的单词查询
- (五)Excel函数应用之查询与引用函数
- 微分几何笔记(2) —— 曲线的参数化
- 网易校招内推-2023届技术类岗位
- 发错邮件后你知道怎么撤回邮件吗?163vip邮箱邮件撤回了解一下
- 【Spring Boot 2.0学习之旅-15】SpringBoot2.0响应式编程
- jQuery 第二篇
- 基于MATLAB的图像分割系统
- 亥姆霍兹线圈分类简介
- 匿名内部类会导致内存泄露
- 浮萍自动清理机器人——第一次下水201606