본문 바로가기
Database

오라클로 배우는 데이터베이스 입문, 둘째 마당 05 - 1 ~ 3번

by Jiwon_Loopy 2025. 4. 27.
반응형

1. 사원 이름이 S로 끝나는 사원 데이터 모두 출력


SELECT *
FROM EMP
WHERE ENAME LIKE '%S';

출력 결과

7566	JONES	MANAGER	7839	81/04/02	2975		20
7876	ADAMS	CLERK	7788	87/05/23	1100		20
7900	JAMES	CLERK	7698	81/12/03	950		30

2. 30번 부서에서 근무하고 있는 사원 중에 직책이 SALESMAN인 사원의 산원 번호, 이름, 직책, 급여, 부서 번호를 출력


SELECT EMPNO, ENAME, JOB, SAL, DEPTNO
FROM EMP
WHERE DEPTNO = 30 AND JOB = 'SALESMAN';

출력 결과

7499	ALLEN	SALESMAN	1600	30
7521	WARD	SALESMAN	1250	30
7654	MARTIN	SALESMAN	1250	30
7844	TURNER	SALESMAN	1500	30

3. 20번, 30번 부서에서 근무하고 있는 사원 중 급여가 2000 초과인 사원을 다음 두 가지 방식을 사용하여 사원 번호, 이름, 급여, 부서 번호를 출력


3-1) 집합 연산자 사용하지 않음

SELECT EMPNO, ENAME, SAL, DEPTNO
FROM EMP
WHERE (DEPTNO = 30 OR DEPTNO = 20) AND SAL > 2000;

출력 결과

EMPN  ENAME SAL DEPTNO
7566	JONES	2975	20
7698	BLAKE	2850	30
7788	SCOTT	3000	20
7902	FORD	3000	20

3-2) 집합 연산자를 사용

SELECT EMPNO, ENAME, SAL, DEPTNO
FROM EMP
WHERE DEPTNO = 30 AND SAL > 2000
UNION
SELECT EMPNO, ENAME, SAL, DEPTNO
FROM EMP
WHERE DEPTNO = 20 AND SAL > 2000;

출력 결과

EMPN  ENAME SAL DEPTNO
7566	JONES	2975	20
7698	BLAKE	2850	30
7788	SCOTT	3000	20
7902	FORD	3000	20

4, NOT BETWEEN A AND B 연산자를 쓰지 않고, 급여 열 값이 2000이상 3000이하 범위 이외의 값을 가진 데이터만 출력


SELECT *
FROM EMP
WHERE NOT (SAL >= 2000 AND SAL <=3000);

또는

SELECT *
FROM EMP
WHERE SAL < 2000 OR SAL > 3000;

출력 결과

7369	SMITH	CLERK	7902	80/12/17	800		20
7499	ALLEN	SALESMAN	7698	81/02/20	1600	300	30
7521	WARD	SALESMAN	7698	81/02/22	1250	500	30
7654	MARTIN	SALESMAN	7698	81/09/28	1250	1400	30
7839	KING	PRESIDENT		81/11/17	5000		10
7844	TURNER	SALESMAN	7698	81/09/08	1500	0	30
7876	ADAMS	CLERK	7788	87/05/23	1100		20
7900	JAMES	CLERK	7698	81/12/03	950		30
7934	MILLER	CLERK	7782	82/01/23	1300		10

5. 사원 이름에 E가 포함되어 있는 30번 부서의 사원 중 급여가 1000~2000 사이가 아닌 사원 이름, 사원 번호, 급여, 부서 번호를 출력


SELECT ENAME, EMPNO, SAL, DEPTNO
FROM EMP
WHERE ENAME LIKE '%E%' AND DEPTNO = 30 AND SAL NOT BETWEEN 1000 AND 2000;

실행 결과

BLAKE	7698	2850	30
JAMES	7900	950	30

6. 추가 수당이 존재하지 않고 상급자가 있고 직책이 MANAGER, CLERK인 사원 중에서 사원 이름의 두 번째 글자가 L이 아닌 사원의 정보를 출력


SELECT *
FROM EMP
WHERE COMM IS NULL AND NOT MGR IS NULL AND (JOB = 'MANAGER' OR JOB = 'CLERK') AND NOT ENAME LIKE '_L%';

실행 결과

7369	SMITH	CLERK	7902	80/12/17	800		20
7566	JONES	MANAGER	7839	81/04/02	2975		20
7876	ADAMS	CLERK	7788	87/05/23	1100		20
7900	JAMES	CLERK	7698	81/12/03	950		30
7934	MILLER	CLERK	7782	82/01/23	1300		10
728x90
반응형