oracle常用sql汇总
/*
连接查询
*/
--1、查询各个管理者的编号及其手下员工的最低工资,其中最低工资不能低于2000,没有管理者的员工不计算在内
--分析:找管理者手下的员工的最低工资,要将管理员底下的所有员工进行分组,在统计最低工资。
select job,min(sal)
from emp
group by job
having min(sal)>=2000;
--2查询所有部门的名称,loc,员工数量和工资平均值
--所有部门的名称必须从表dept中查询,而员工的数量和平均工资则必须从emp表中查询,所以该查询必须用到连接
select d.dname 部门名称,d.loc 部门地址,count(e.empno) 员工数量,round(avg(sal),0) 平均工资
from dept d,emp e
where d.deptno=e.deptno
group by d.dname,d.loc;
/******************************************************************/
/*
单行函数
*/
--1、显示系统时间(取别名为“DATE”).
select sysdate "DATE" from dual;
--2. 查询员工号,姓名,工资(若为NULL则作为0处理),以及工资提高百分之20%后四舍五入到整数的结果(取别名为new salary)
select empno 员工号,ename 姓名,nvl(sal,0) 工资,nvl(sal,0)*1.2 工资提高 from emp;
--3. 将员工的姓名(取别名为"Name")按字母表先后顺序排序,并写出姓名的长度(取别名为"length")
select ename 员工姓名
from emp
order by ename asc;
--4. 查询各员工的姓名,并显示出各员工在公司工作了多少个月份(起别名为"worked_month")四舍五入到整数
select ename 员工姓名,round(months_between(sysdate,hiredate) ,0) 月份 from emp;
--5. 查询员工的姓名和工资,按下面的形式显示结果(工资字段必须为15位,空位用$填充)
select ename,lpad(sal,15,'$') from emp;
--7. 查询员工的姓名,以及在公司工作满了多少个月(worked_month),并按月份数降序排列
--结论:必须是 字段名 is not null,这里字段名不能改成别名,如果想用别名 ,则重新生成一张表,
--把别名改成字段名,这样就可以用别名了
select 姓名,月份
from(select ename 姓名,round(months_between(sysdate,hiredate),0) 月份 from emp)
order by 月份 desc;
--8. 做一个查询,按下面的形式显示结果 <ename> earns <sal> monthly but wants to<sal*3>
select ename||' earns '||sal||' monthly but wants to '||nvl(sal,0)*3 from emp;
--9. 做一个查询,按下面的形式显示结果 KING****
select rpad(ename,length(ename)+round(sal/1000),'*' ) from emp;
--10、输出ename,job,grade 按对job进行级别分类
要求: 'PRESIDENT','A'
'MANAGER','B'
'ANALYST','C'
'SALESMAN','D'
其它 'E'
Select ename 姓名,
job 职位,
decode(job,'PRESIDENT','A','MANAGER','B','ANALYST','C','SALESMAN','D','E') 级别
from emp;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!