Oracle EMP表查询实现分析(oracle emp查询)
Oracle EMP表查询实现分析
EMP表是Oracle系统中自带的一个样例表,它包含了员工的基本信息,比如员工编号、姓名、工资等。在实际开发过程中,我们经常需要通过对EMP表的查询来实现业务逻辑的处理。本文将就如何实现EMP表的查询进行简要分析,并提供相关代码,以供读者参考。
一、EMP表的结构
EMP表包含了14个字段,分别是EMPNO、ENAME、JOB、MGR、HIREDATE、SAL、COMM、DEPTNO等。其中,EMPNO为员工编号,是EMP表的主键;ENAME为员工姓名;JOB为员工职位;MGR为上级主管编号;HIREDATE为入职日期;SAL为员工基本工资;COMM为员工佣金;DEPTNO为员工所在部门编号。EMP表的结构如下所示:
EMPNO | ENAME | JOB | MGR | HIREDATE | SAL | COMM | DEPTNO
——+——+———+—–+———-+——-+——-+——-
7369 | SMITH | CLERK | 7902| 1980/12/17| 800 | null | 20
7499 | ALLEN | SALESMAN| 7698| 1981/2/20 | 1600| 300 | 30
7521 | WARD | SALESMAN| 7698| 1981/2/22 | 1250| 500 | 30
7566 | JONES | MANAGER | 7839| 1981/4/2 | 2975| null | 20
7654 | MARTIN | SALESMAN| 7698| 1981/9/28 | 1250| 1400 | 30
7698 | BLAKE | MANAGER | 7839| 1981/5/1 | 2850| null | 30
7782 | CLARK | MANAGER | 7839| 1981/6/9 | 2450| null | 10
7788 | SCOTT | ANALYST | 7566| 1982/12/9 | 3000| null | 20
7839 | KING | PRESIDENT| null| 1981/11/17| 5000| null | 10
7844 | TURNER | SALESMAN| 7698| 1981/9/8 | 1500| 0 | 30
7876 | ADAMS | CLERK | 7788| 1983/1/12 | 1100| null | 20
7900 | JAMES | CLERK | 7698| 1981/12/3 | 950 | null | 30
7902 | FORD | ANALYST | 7566| 1981/12/3 | 3000| null | 20
7934 | MILLER | CLERK | 7782| 1982/1/23 | 1300|null | 10
二、基本查询
要查询EMP表中的数据,最基本的select语句如下:
SELECT * FROM EMP;
运行后,可以看到EMP表中所有的数据。如果只想查看某几个字段的数据,可以使用如下的select语句:
SELECT EMPNO, ENAME, JOB, SAL FROM EMP;
执行后,输出结果如下所示:
EMPNO | ENAME | JOB | SAL
——+——+———+——-
7369 | SMITH | CLERK | 800
7499 | ALLEN | SALESMAN| 1600
7521 | WARD | SALESMAN| 1250
7566 | JONES | MANAGER | 2975
7654 | MARTIN | SALESMAN| 1250
7698 | BLAKE | MANAGER | 2850
7782 | CLARK | MANAGER | 2450
7788 | SCOTT | ANALYST | 3000
7839 | KING | PRESIDENT| 5000
7844 | TURNER | SALESMAN| 1500
7876 | ADAMS | CLERK | 1100
7900 | JAMES | CLERK | 950
7902 | FORD | ANALYST | 3000
7934 | MILLER | CLERK | 1300
三、条件查询
如果只想查询满足某个条件的数据,可以在select语句后面加上where子句,下面是一个查询入职日期在1981年以前的员工的语句:
SELECT * FROM EMP WHERE HIREDATE
查询结果如下所示:
EMPNO | ENAME | JOB | MGR | HIREDATE | SAL | COMM | DEPTNO
——+——+———+—–+———-+——-+——-+——-
7369 | SMITH | CLERK | 7902| 1980/12/17| 800 | null | 20
7566 | JONES | MANAGER | 7839| 1981/4/2 | 2975| null | 20
7698 | BLAKE | MANAGER | 7839| 1981/5/1 | 2850| null | 30
7782 | CLARK | MANAGER | 7839| 1981/6/9 | 2450| null | 10
7788 | SCOTT | ANALYST | 7566| 1982/12/9 | 3000| null | 20
7839 | KING | PRESIDENT| null| 1981/11/17| 5000| null | 10
7876 | ADAMS | CLERK | 7788| 1983/1/12 | 1100| null | 20
7902 | FORD | ANALYST | 7566| 1981/12/3 | 3000| null | 20
7934 | MILLER | CLERK | 7782| 1982/1/23 | 1300| null | 10
四、排序查询
如果希望按照某个字段的升序或降序进行排序,可以使用order by子句。下面是以部门编号为升序排列,工资为降序排列的语句:
SELECT * FROM EMP ORDER BY DEPTNO ASC, SAL DESC;
查询结果如下所示:
EMPNO | ENAME | JOB | MGR | HIREDATE | SAL | COMM | DEPTNO
——+——+———+—–+———-+——-+——-+——-
7934 | MILLER | CLERK | 7782| 1982/1/23 | 1300| null | 10
7782 | CLARK | MANAGER | 7839| 1981/6/9 | 2450| null | 10
7839 | KING | PRESIDENT| null| 1981/11/17| 5000| null | 10
7900 | JAMES | CLERK | 7698| 1981/12/3 | 950 | null | 30
7654 | MARTIN | SALESMAN| 7698| 1981/9/28 | 1250| 1400 | 30
7499 | ALLEN | SALESMAN| 7698| 1981/2/20 | 1600| 300 | 30
7844 | TURNER | SALESMAN| 7698| 1981/9/8 | 1500| 0 | 30
7902 | FORD | ANALYST | 7566| 1981/12/3 | 3000| null | 20
7788 | SCOTT | ANALYST | 7566| 1982/12/9 | 3000| null | 20
7876 | ADAMS | CLERK | 7788| 1983/1/12 | 1100| null | 20
7566 | JONES | MANAGER | 7839| 1981/4/2 | 2975| null | 20
7369 | SMITH | CLERK | 7902| 1980/12/17| 800 | null | 20
7698 | BLAKE | MANAGER | 7839| 1981/5/1