请给Oracle表中的emp表出30道单表查询的题带答案
时间: 2024-05-14 20:18:26 浏览: 108
好的,以下是30道Oracle单表查询的题目和答案:
1. 查询emp表中所有员工的信息。
```
SELECT * FROM emp;
```
2. 查询emp表中员工的工号、姓名、工资。
```
SELECT empno, ename, sal FROM emp;
```
3. 查询emp表中薪水大于等于3000的员工信息。
```
SELECT * FROM emp WHERE sal >= 3000;
```
4. 查询emp表中薪水大于等于3000且职位为经理的员工信息。
```
SELECT * FROM emp WHERE sal >= 3000 AND job = '经理';
```
5. 查询emp表中所有员工的姓名、工资和奖金。
```
SELECT ename, sal, comm FROM emp;
```
6. 查询emp表中所有员工的姓名、工资和年薪。
```
SELECT ename, sal, sal*12 FROM emp;
```
7. 查询emp表中所有员工的姓名、工资和工资涨幅。
```
SELECT ename, sal, (sal-1200)/1200*100 AS "涨幅%" FROM emp;
```
8. 查询emp表中所有员工的姓名、工资和工资级别。
```
SELECT ename, sal,
CASE
WHEN sal < 2000 THEN 'A级'
WHEN sal < 3000 THEN 'B级'
ELSE 'C级'
END AS "工资级别"
FROM emp;
```
9. 查询emp表中所有员工的姓名、部门名称和工资。
```
SELECT e.ename, d.dname, e.sal FROM emp e, dept d WHERE e.deptno = d.deptno;
```
10. 查询emp表中所有员工的姓名、部门编号和岗位名称。
```
SELECT e.ename, e.deptno, j.jname FROM emp e, job j WHERE e.job = j.job;
```
11. 查询emp表中所有员工的姓名、入职日期和工资。
```
SELECT ename, hiredate, sal FROM emp;
```
12. 查询emp表中薪水大于等于2000并且小于等于4000的员工信息。
```
SELECT * FROM emp WHERE sal BETWEEN 2000 AND 4000;
```
13. 查询emp表中薪水不在2000到4000范围内的员工信息。
```
SELECT * FROM emp WHERE sal NOT BETWEEN 2000 AND 4000;
```
14. 查询emp表中员工姓名中包含字母“A”的员工信息。
```
SELECT * FROM emp WHERE ename LIKE '%A%';
```
15. 查询emp表中员工姓名以字母“S”开头的员工信息。
```
SELECT * FROM emp WHERE ename LIKE 'S%';
```
16. 查询emp表中员工姓名以字母“S”结尾的员工信息。
```
SELECT * FROM emp WHERE ename LIKE '%S';
```
17. 查询emp表中员工姓名中包含3个字母的员工信息。
```
SELECT * FROM emp WHERE ename LIKE '___';
```
18. 查询emp表中员工姓名中包含2个字母的员工信息。
```
SELECT * FROM emp WHERE ename LIKE '__';
```
19. 查询emp表中薪水排在前10位的员工信息。
```
SELECT * FROM emp ORDER BY sal DESC FETCH FIRST 10 ROWS ONLY;
```
20. 查询emp表中薪水排在后10位的员工信息。
```
SELECT * FROM (SELECT * FROM emp ORDER BY sal DESC) WHERE ROWNUM <= 10 ORDER BY sal ASC;
```
21. 查询emp表中薪水排名第5到第10的员工信息。
```
SELECT * FROM (SELECT e.*, RANK() OVER (ORDER BY sal DESC) AS rank FROM emp e) WHERE rank BETWEEN 5 AND 10;
```
22. 查询emp表中每个部门的员工数量。
```
SELECT deptno, COUNT(*) FROM emp GROUP BY deptno;
```
23. 查询emp表中每个部门的平均工资、最高工资和最低工资。
```
SELECT deptno, AVG(sal), MAX(sal), MIN(sal) FROM emp GROUP BY deptno;
```
24. 查询emp表中薪水比平均工资高的员工信息。
```
SELECT * FROM emp WHERE sal > (SELECT AVG(sal) FROM emp);
```
25. 查询emp表中薪水比其上级领导高的员工信息。
```
SELECT e.*, m.ename AS "上级领导" FROM emp e, emp m WHERE e.mgr = m.empno AND e.sal > m.sal;
```
26. 查询emp表中没有上级领导的员工信息。
```
SELECT * FROM emp WHERE mgr IS NULL;
```
27. 查询emp表中每个职位的平均工资和员工数量。
```
SELECT job, AVG(sal), COUNT(*) FROM emp GROUP BY job;
```
28. 查询emp表中每个职位的平均工资和最高工资。
```
SELECT job, AVG(sal), MAX(sal) FROM emp GROUP BY job;
```
29. 查询emp表中每个职位的平均工资和最低工资。
```
SELECT job, AVG(sal), MIN(sal) FROM emp GROUP BY job;
```
30. 查询emp表中工资最高的员工信息。
```
SELECT * FROM emp WHERE sal = (SELECT MAX(sal) FROM emp);
```
阅读全文