当前位置:首页 > SQL数据库经典语句查询
1、列出至少有一个员工的全部部门及人数。
SQL> select deptno ,count(ename) from emp group by deptno having count(ename)>1;
2、列出薪金比“SMITH”多的全部员工。
SQL> select ename from emp where sal>ALL(select sal from emp where ename='SMITH');
3、列出全部员工的姓名及其直接上级的姓名
SQL> SELECT 员工.ENAME,上级.ENAME FROM EMP 员工,emp 上级 WHERE 员工.MGR=上级.EMPNO;
4、列出受雇日期早于其直接上级的全部员工。
SQL> SELECT e.ename FROM emp e,emp m WHERE e.mgr = m.empno AND e.hiredate < m.hiredate;
5、列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门。
select d.dname,ename,empno,job,hiredate,sal from emp e right join dept d on e.deptno=d.deptno;
6、列出全部 “CLERK”(做事员)的姓名及其部门名称。
select e.ename,d.dname from emp e,dept d where e.deptno=d.deptno and e.job='CLERK';
7、列出最低薪金大于1500的种种工作 。
SQL> select job from emp group by job having min(sal)>1500; 8、列出在部分门“SALES”(贩卖部)做事的员工的姓名,假定不知道贩卖部
的部门编号。
select ename from emp where deptno=(select deptno from dept where dname='SALES');
SELECT e.ename FROM emp e,dept d WHERE e.deptno = d.deptno AND d.dname='SALES';
SELECT e.ename FROM emp e JOIN dept d ON e.deptno = d.deptno AND d.dname='SALES';
9、列出薪金高于公司平均薪金的全部员工。
select ename from emp where sal>all(select avg(sal) from emp);
10、列出与“SCOTT”从事相同工作的全部员工。
select ename,empno from emp where job=(select job from emp where ename='SCOTT');
11、列出薪金是部门30中员工的薪金的全部员工的姓名和薪金。
select ename,sal from emp where deptno=30;
12、列出薪金高于在部门30做事的全部员工的薪金的员工姓名和薪金。
select ename,sal from emp where sal>any (select sal from emp where
deptno=30);
13、列出在每个部门做事的员工数量 、均匀收入、平均做事限期。
select count(ename),avg(sal),AVG((SYSDATE-hiredate)/365) from emp group by(deptno);
14、列出全部员工的姓名、部门名称和收入。
select e.ename,d.dname,e.sal from emp
e,dept
d
where
e.deptno=d.deptno;
15、列出从事同一种工作但属于不同部门的员工。
select a.ename, b.ename, a.job, b.job, a.deptno, b.deptno from emp a,emp b where a.job=b.job and a.deptno<>b.deptno;
16、列出全部部门的具体信息和部门人数。
select dept.*,(select count(*) from emp where dept.deptno = emp.deptno) as pop from dept;
17、列出种种工作的最低收入。
select job,min(sal) from emp group by job ;
18、列出各个部门的MANAGER(jing理)的最低薪金。
select deptno,min(sal) from emp where job='MANAGER' group by deptno;
19、列出全部员工的年收入 ,按年薪从低到高排序。
select ename,12*(sal+nvl(comm,0))as year_sal from emp order by year_sal;
20、找出佣金高于薪金的60%的员工.
select ename from emp where comm>sal*0.6;
21、找出部门10中所有经理(MANAGER),部门20中所有办事员(CLERK),既不是经理又不是办事员但其薪金大于或等于2000的所有员工的详细资料.
22、找出不收取佣金或收取的佣金低于100的员工.
select ename from emp where comm is null or comm<100; 23、 找出各月倒数第3天受雇的所有员工.
select ename from emp where hiredate=last_day(hiredate)-3;
24、 显示正好为5个字符的员工的姓名.
select ename from emp where length(ename)=5;
25、 显示不带有\的员工的姓名.
select ename from emp where ename not like '%R%';
26、 显示所有员工姓名的前三个字符.
select substr(ename,1,3)from emp;
27、显示所有员工的姓名、工作和薪金,按工作的降序排序,若工作相同则按薪金排序.
Select ename,job,sal from emp order by job desc,sal asc;
28、 对于每个员工,显示其加入公司的天数.
Select ename,sysdate-hiredate from emp;
29、 显示姓名字段的任何位置包含\的所有员工的姓名.
select ename from emp where ename like'%A%';
30、 查询和“李建国”是同一部门的职工姓名。(使用子查询)
select ename from emp where deptno=(select deptno from emp where ename='李建国');
31、查询“Research”和”Manager”部门的职工姓名(UNION)
共分享92篇相关文档