Oracle中经典SQL语句汇总

 不断的回顾和温习SQL语句,会加强SQL语言功底。

下面列举了一些经典的SQL语句


--列出部门编号为20的所有员工
select * from emp e where e.deptno = 30;
--列出所有职位为CLERK的姓名,编号和部门编号
select e.empno,e.ename,e.deptno from emp e where e.job = 'CLERK';
--列出佣金高于薪金的员工
select * from emp e where e.comm > e.sal;
--列出佣金高于薪金的60%的员工
select * from emp e where e.comm > (e.sal * 0.6)
--列出收取佣金的员工的不同工作
写法1:select distinct e.job from emp e where e.comm is not null;
写法2:select distinct job,ename from emp where NVL(comm,0)>0;
--列出不收取佣金或收取的佣金低于100的员工
写法1:select * from emp where NVL(comm,0)=0 or comm < 100;
写法2:select * from emp where NVL(comm,0)=0 or NVL(comm,0)<100;
--列出从入职到现在工作满38年的员工
select * from emp where months_between(sysdate,hiredate)/12>38;
--以首字母大写的方式显示所有员工的姓名
select initcap(ename) name,ename,job, hiredate from emp;
--列出员工名字正好为5个字符的员工姓名
select ename from emp where length(ename)=5;
--列出员工的详细资料,按姓名排序
select * from emp order by ename;
--列出所有员工姓名的前三个字符
select substr(ename,1,3),ename from emp;
--列出所有员工的姓名,用a替换所有"A"
select replace(ename,'A','a'),ename from emp;
--列出所有员工的姓名、工作和薪金,按工作的升序排序,若工作相同则按薪金从高到低排序
select ename,job,sal from emp order by job,sal desc;
--列出最低薪金大于1500的各种工作
select job from emp group by job having min(sal)>1500
--列出在部门“SALES”工作的员工的姓名,假定不知道销售部的部门编号
select e.ename from emp e,dept d where e.deptno = d.deptno and d.dname = 'SALES';
--列出薪金高于公司平均薪金的所有员工
select e.ename,e.sal from emp e where e.sal > (select avg(em.sal) from emp em);
--列出与“SCOTT”从事相同工作的所有员工
select * from emp e where e.job = (select e1.job from emp e1 where e1.ename = 'SCOTT')
--列出所有员工的姓名、部门名称和工资
select e.ename,d.dname,e.sal from emp e,dept d where e.deptno = d.deptno
--列出从事同一种工作但属于不同部门的员工的一种组合
select distinct e1.deptno, e1.empno, e1.ename, e1.job, e1.sal
  from emp e1, emp e2
 where e1.deptno != e2.deptno
   and e1.job = e2.job;
--列出所有部门的详细信息和部门人数
select d.*,(select count(e.ename) from emp e where e.deptno(+) = d.deptno) from dept d 
--列出各种工作的最低工资
select e.job,min(e.sal) from emp e group by e.job;
--查询81年入职的员工
select * from emp where to_char(hiredate,'yyyy') = '1981'
--将员工入职时间按照年-月-日进行格式化
select to_char(hiredate,'yyyy-mm-dd') from emp;
发布了141 篇原创文章 · 获赞 38 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/baidu_35901646/article/details/104287722