:所有部门。
select dept.deptno,dept.dname
from dept,emp
where dept.deptno=emp.deptno
2.列出薪金比“SMITH”多的所有员工。
select * from emp
where sal >(select sal from emp where ename=’SMITH’)
3.列出所有员工的姓名及其直接上级的姓名。
select yg.ename,sj.ename
from emp yg,emp sj
where yg.mgr=sj.empno
4.列出受雇日期早于其直接上级的所有员工。
select yg.ename,sj.ename
from emp yg join emp sj on yg.mgr=sj.empno
where yg.hiredate
5.列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门。
select dept.deptno,dept.dname,emp.empno,emp.ename
from dept left join emp
on dept.deptno=emp.deptno
6.列出所有“CLERK”(办事员)的姓名及其部门名称。
select * from dept,emp
where dept.deptno=emp.deptno
and job=’CLERK’
7.列出最低薪金大于1500的各种工作。
select job from emp
group by job
having min(sal)>1500
8.列出在部门名称为“SALES”(销售部)工作的员工的姓名,假定不知道销售部的部门编号。
方法一:
select emp.ename
from dept,emp
where dept.deptno=emp.deptno
and dname=’SALES’
方法二:
select * from emp
where deptno=(select deptno from dept where dname=’SALES’)
9.列出薪金高于公司平均薪金的所有员工。
select * from emp
where sal> (select avg(sal) from emp)
对比:列出薪金高于本部门平均薪金的所有员工。
方法一:
select * from emp a
where a.sal>(select avg(sal) from emp b where b.deptno=a.deptno)
缺点:相关子查询,效率低。
方法二:
select empno,ename,sal from
emp a,(select avg(sal) avg_sal from emp b where b.deptno=a.deptno) b
where a.deptno=b.deptno
and a.sal>b.avg_sal
10.列出与“SCOTT”从事相同工作的所有员工。
select * from emp
where job=(select job from emp where ename=’SCOTT’)
11.列出薪金等于部门30中员工的薪金的所有员工的姓名和薪金。
select ename,sal from emp
where sal=any(select sal from emp where deptno=30 )
12.列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金。
方法一:
select ename,sal from emp
where sal>all(select sal from emp where deptno=30 )
方法二:
select ename,sal from emp
where sal>(select max(sal) from emp where deptno=30 )
13.列出在每个部门工作的员工数量、平均工资和平均服务期限。
select deptno,avg(trunc((sysdate-hiredate)/365)) as year
from emp
group by deptno
–参考:截断,取整函数
select trunc(99.9) from dual;
返回
99
14.列出所有员工的姓名、部门名称和工资。
select d.dname,e.ename,e.sal
from dept d,emp e
where d.deptno=e.deptno
说明:每个字段都加表前缀,效率要高些
15.列出所有部门的详细信息和部门人数。
select dept.deptno,dept.dname,count(*)
from dept,emp
where dept.deptno=emp.deptno
group by dept.deptno,dept.dname
16.列出各种工作的最低工资。
select job,min(sal) from emp group by job
17.列出各个部门的MANAGER(经理)的最低薪金。
select deptno,min(sal) from emp where job=’MANAGER’ group by deptno
18.列出所有员工的年工资,按年薪从低到高排序。
select empno,ename,sal*12 as 年薪 from emp
order by sal
19. 求各种工作工资最低的员工。
方法一:
select * from emp a
where sal=(select min(sal) from emp b where b.job=a.job)
方法二:
select emp.*
from emp a,( select job,min(sal) min_sal from emp group by job) b
where a.job=b.job and a.sal=b.min_sal
20. 列出各种工作工资前3名的员工
select * from (
select empno,ename,sal,job,
dense_rank() over(partition by job order by sal desc) as 名次
from emp ) a
where a.名次<=2
order by job;
说明:用到了Oracle强大的“分区排名技术”,其中“dense_rank()”是Oracle的解析函数。
- 浏览: 137220 次
最新评论
-
奇葩的奇葩:
WebUI最新版免费下载
easyUI与选择WebUI -
拽的欠扁:
居然有美女程序员。
写在冬日的第一天--一个女程序员第九年工作总结(及杂七杂八) -
jiucool:
低头做事,抬头做人过幸福的小日子 ,很不错的心态
写在冬日的第一天--一个女程序员第九年工作总结(及杂七杂八) -
minimu:
心态非常好,也会让你的团队和客户感觉比较舒服的
写在冬日的第一天--一个女程序员第九年工作总结(及杂七杂八) -
宋建勇:
我的上司就是女的,架构师,不是一般的厉害啊!女人不可小嘘啊 ...
写在冬日的第一天--一个女程序员第九年工作总结(及杂七杂八)
相关推荐
通用语言实现Oracle操作实例.pdf
标题《oracle修改实例名》与描述《修改oracle数据库的实例名,修改oracle数据库的实例名》暗示本文主要讲述的是在Oracle数据库中如何修改数据库实例名称的操作。实例名(也称作SID,即系统标识符)是数据库安装后在...
### Linux 下 Oracle 10.2.0 创建实例详尽指南 #### 一、环境配置与准备 在开始创建 Oracle 数据库实例之前,确保已经安装了 Oracle 10.2.0 版本,并完成了相应的环境变量配置。下面将详细介绍环境配置的步骤。 *...
提供数据库的一些基本操作,能帮助初学者快速掌握oracle数据库的使用。
oracle 数据库实例与操作模式
### Linux 下 Oracle 手动建实例详解 #### 一、概述 在Linux环境中手动构建Oracle实例是一项高级且复杂的任务,通常适用于需要定制化配置或特殊需求的场景。本文档将根据给定的信息,详细介绍如何在Linux环境下手动...
### Oracle RAC 集群实例删除详解 #### 一、引言 Oracle RAC (Real Application Clusters) 是一种高可用性和可扩展性的数据库解决方案,它允许多个Oracle数据库实例同时访问同一个数据库。在Oracle RAC环境中进行...
Oracle 数据库的概念不同于其他数据库,它是一个操作系统只有一个库,可以看作是 Oracle 只有一个大数据库。 实例 Oracle 实例(Oracle Instance)是一组后台进程(Backguound Processes)和内存结构(Memory ...
这个"oracle精品实例,练习总结"的压缩包文件显然包含了nickcheng个人整理的一系列关于Oracle数据库的操作实例和学习心得,旨在帮助用户深入理解和应用Oracle技术。下面我们将深入探讨Oracle数据库的一些关键知识点。...
本压缩包中的"Oracle代码"包含了一系列关于触发器、视图等常用SQL语句的实例代码,旨在帮助用户更好地理解和应用这些概念。 首先,让我们深入了解一下触发器。在Oracle数据库中,触发器是一种特殊的存储过程,它在...
oracle 冷备份是指在 Windows 平台上对 Oracle 数据库实例进行备份的操作。冷备份需要将企业的 Oracle 数据库实例shutdown下来,并将所有的数据文件、控制文件、参数文件等拷贝回来,然后恢复。为确保备份的完整性...
Oracle数据库实例是一个复杂而关键的系统,用于存储和管理企业级的数据。本篇将深入讨论Oracle数据库的热备份和完整恢复机制,这是确保数据安全和业务连续性的重要环节。 首先,热备份是一种在数据库运行状态下进行...
Oracle数据库实例是运行在操作系统上的内存结构和进程的集合,它与实际的物理数据存储(即数据库)相连接。实例提供了对数据库的访问,管理和处理数据的路径。当启动一个Oracle实例时,系统会分配内存区,并启动一...
本"Oracle数据库实例视频教程01"是针对初学者和希望深化Oracle知识的人员设计的一系列教学资源,旨在帮助理解Oracle数据库的基础概念、安装配置以及基本操作。 在本教程中,首先会介绍Oracle数据库的概述,包括它的...
### ORACLE客户端与实例知识点详解 #### 一、概述 Oracle 客户端与实例是 Oracle 数据库系统中的两个核心组成部分。...这些操作对于管理和维护 Oracle 数据库至关重要,有助于确保数据库高效稳定地运行。
Oracle多实例创建是数据库管理员在部署Oracle数据库时经常会遇到的操作。Oracle数据库系统允许在同一台物理服务器上运行多个独立的数据库实例,每个实例都有自己独立的内存结构(SGA)和后台进程,这种特性使得资源...
每个Oracle实例都对应一个数据库,通过实例,用户可以执行SQL语句、管理数据等操作。 ### 二、初始化参数文件initORCL.ora 初始化参数文件(如initORCL.ora)是Oracle实例的核心配置文件,它定义了数据库实例的...
### Oracle客户端实例别名配置详解 #### 一、配置实例别名的重要性 在日常的数据库管理工作中,我们经常需要使用`sqlplus`等工具连接到不同的Oracle数据库实例。按照传统的方式,每次登录都需要手动输入目标数据库...