Oracle数据库基本语句练习
来源:互联网 发布:普通话测试模拟软件 编辑:程序博客网 时间:2024/05/29 15:54
以下基于Oeacle提供的scott管理员权限和自带的emp表格。
–1、列出至少有一个雇员的所有部门
select distinct deptno from ```
/
–2、列出薪金比”SMITH”多的所有雇员
–方法1:子查询
ename,sal
from emp
where sal>(select sal from emp where upper(ename)=’SMITH’)
/
–方法2:自联接
select tbA.*from emp tbA,emp tbBwhere tbA.sal>tbB.saland UPPER(tbB.ename)='SMITH'
/
–3、列出所有雇员的姓名及其直接上级的姓名
–方法1:自联接
select tbA.ename as 雇员姓名,tbB.ename as 上级姓名from emp tbA,emp tbBwhere tbA.mgr=tbB.empno(+)
/
–方法2:关联子查询
select ename as 雇员姓名,(select ename from emp where empno=tbA.mgr) as 上级姓名from emp tbA
/
–4、列出入职日期早于其直接上级的所有雇员
–方法1:关联子查询
select *from emp tbAwhere hiredate<(select hiredate from emp where empno=tbA.mgr)
/
–方法2:自联接
select tbA.* from emp tbA,emp tbB where tbA.mgr=tbB.empno and
tbA.hiredate
select dname as 部门名称,ename as 雇员名称from dept,empwhere dept.deptno=emp.deptno(+)
/
–6、列出所有”CLERK”(办事员)的姓名及其部门名称
select ename as 雇员姓名,dname as 部门名称 from dept,empwhere dept.deptno=emp.deptnoand UPPER(emp.job)='CLERK'
/
–7、列出各种工作类别的最低薪金,并使最低薪金大于1500
select job as 工作 , min(sal) as 最低薪金from empgroup by jobhaving min(sal) >1500
/
–8、列出从事”SALES”(销售)工作的雇员的姓名,假定不知道销售部的部门编号
select ename as 雇员姓名from emp,deptwhere emp.deptno=dept.deptnoand dept.dname='SALES'
/
–9、列出薪金高于公司平均水平的所有雇员
select *from empwhere sal>(select AVG(sal) from emp)
/
–10、列出与”SCOTT”从事相同工作的所有雇员
–方法1:子查询
select *from emp tbAwhere job in (select job from emp where ename='SCOTT') and ename<>'SCOTT'
/
–方法2:自联接
select tbA.* from emp tbA,emp tbBwhere tbA.job=tbB.joband tbB.ename='SCOTT' and tba.ename<>'SCOTT'
/
–方法3:关联子查询
SELECT * FROM EMP A WHERE EXISTS(SELECT JOB FROM EMP b WHEREb.ENAME='SCOTT' AND A.JOB=b.JOB ) and a.ename<>'SCOTT'
–11、列出某些雇员的姓名和薪金,条件是他们的薪金等于部门30中任何一个雇员的薪金
select ename,sal from empwhere sal in (select sal from emp where deptno=30)--and deptno<>30
/
–12、列出某些雇员的姓名和薪金,条件是他们的薪金高于部门30中所有雇员的薪金
select ename,sal from empwhere sal > all (select sal from emp where deptno=30)
/
–13、列出每个部门的信息以及该部门中雇员的数量
select dept.*,count(empno)from dept,empwhere dept.deptno=emp.deptno(+)group by dept.deptno,dname,loc
/
–注意:count(empno)
–14、列出所有雇员的雇员名称、部门名称和薪金
select ename,dname,salfrom dept,empwhere emp.deptno=dept.deptno(+)
/
–15、列出从事同一种工作但属于不同部门的雇员的不同组合
select tbA.ename,tbB.ename,tbA.job,tbB.job,tbA.deptno,tbB.deptnofrom emp tbA,emp tbBwhere tbA.job=tbB.joband tbA.deptno<>tbB.deptno
/
–16、列出分配有雇员数量的所有部门的详细信息,即使是分配有0个雇员
select dept.deptno ,dname,loc,count(empno)from dept,empwhere dept.deptno =emp.deptno(+)group by dept.deptno,dname,loc
/
–17、列出各种类别工作的最低工资
select job,min(sal) from emp group by job
/
–18、列出各个部门的MANAGER(经理)的最低薪金
SELECT DEPTNO,MIN(SAL) FROM EMPWHERE JOB='MANAGER' GROUP BY DEPTNO
/
–19、列出按计算的字段排序的所有雇员的年薪
select empno,ename , (sal+nvl(comm,0))*12 as 年薪from emporder by 年薪
/
–20、列出薪金水平处于第四位的雇员
第一种理解答案:按工资位次排,处于第4位的员工
select *from (select empno,sal, rank() over (order by sal desc) as 工资位次 from emp)where 工资位次=4
/
第二种理解答案:按工资水平排,处于第4档的员工
select emp.*from emp , salgradewhere sal between losal and hisaland grade=4
- Oracle数据库基本语句练习
- 【数据库】Oracle语句练习
- Oracle数据库查询语句练习
- Oracle数据库---SQL语句练习
- Oracle连接数据库基本语句
- oracle数据库SQL查询语句练习
- Oracle数据库之SQL语句练习
- oracle数据库SQL查询语句练习一
- oracle数据库SQL查询语句练习二
- oracle数据库SQL查询语句练习三
- Oracle数据库操作基本语句随笔
- 【笔记】Oracle 数据库编程 - 基本语句总结
- oracle数据库的基本操作语句
- oracle 数据库中的一些基本语句
- oracle 基本操作练习——简单的sql语句
- 数据库SQL语句之Table的基本练习
- Mysql基本语句练习
- Oracle数据库之SQL语句练习篇--准备
- Mybatis基于接口代理的方式来开发Dao(一)
- 菱形的编译
- Java 对象序列化
- 1018: [SHOI2008]堵塞的交通traffic
- 【LeetCode】183、Customers Who Never Order
- Oracle数据库基本语句练习
- [莫比乌斯反演] BZOJ1101: [POI2007]Zap
- Axure RP 8管理团队项目中遇到的问题
- HDU 1242-Rescue
- php培训学习记录 第三天(开始记录)
- web常见错误
- 三维空间透视投影至二维平面
- hdu 1069(dp)
- Jzoj3547 MEX