1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | -- 문제1) Steven King의 부서명을 출력하라. SELECT E.EMPLOYEE_ID, E.LAST_NAME, E.FIRST_NAME, D.DEPARTMENT_NAME FROM EMPLOYEES E, DEPARTMENTS D WHERE E.DEPARTMENT_ID = D.DEPARTMENT_ID AND E.LAST_NAME = 'King' AND E.FIRST_NAME = 'Steven'; -- 문제2) IT부서에서 근무하고 있는 사람들을 출력하라. SELECT E.EMPLOYEE_ID, E.LAST_NAME, E.FIRST_NAME, E.JOB_ID, D.DEPARTMENT_NAME FROM DEPARTMENTS D, EMPLOYEES E WHERE D.DEPARTMENT_ID = E.DEPARTMENT_ID AND D.DEPARTMENT_NAME = 'IT'; -- 문제3) EMPLOYEES 테이블과 DEPARTMENTS 테이블을 -- Cartesian Product(모든 가능한 행들의 Join)하여 -- 사원번호,이름,업무,부서번호,부서명,근무지를 출력하여라. SELECT * FROM EMPLOYEES A, DEPARTMENTS B; -- 문제4) EMPLOYEES 테이블에서 사원번호,이름,업무, -- EMPLOYEES 테이블의 부서번호, DEPARTMENTS 테이블의 -- 부서번호,부서명,근무지를 출력하여라. SELECT E.EMPLOYEE_ID, E.FIRST_NAME, E.JOB_ID, E.DEPARTMENT_ID, D.DEPARTMENT_ID, D.DEPARTMENT_NAME, D.LOCATION_ID FROM EMPLOYEES E, DEPARTMENTS D WHERE E.DEPARTMENT_ID = D.DEPARTMENT_ID; -- 문제5) EMPLOYEES 테이블과 DEPARTMENTS 테이블의 부서번호를 조인하고 -- SA_MAN 사원만의 사원번호,이름,급여,부서명,근무지를 출력하라. -- (Alias를 사용) SELECT E.EMPLOYEE_ID, E.FIRST_NAME, E.SALARY, D.DEPARTMENT_NAME, D.LOCATION_ID, E.JOB_ID FROM EMPLOYEES E, DEPARTMENTS D WHERE E.DEPARTMENT_ID = D.DEPARTMENT_ID AND E.JOB_ID = 'SA_MAN'; -- 문제6) EMPLOYEES 테이블과 DEPARTMENTS 테이블에서 -- DEPARTMENTS 테이블에 있는 모든 자료를 사원번호,이름,업무, -- EMPLOYEES 테이블의 부서번호, DEPARTMENTS 테이블의 부서번호,부서명,근무지를 출력하여라 SELECT E.EMPLOYEE_ID, E.FIRST_NAME, E.JOB_ID, D.DEPARTMENT_ID, E.DEPARTMENT_ID, D.DEPARTMENT_NAME, D.LOCATION_ID FROM DEPARTMENTS D, EMPLOYEES E WHERE D.DEPARTMENT_ID = E.DEPARTMENT_ID(+); -- 문제7) EMPLOYEES 테이블에서 Self join하여 관리자(매니저)를 출력하여라. SELECT A.LAST_NAME || '의 관리자는 ' || B.LAST_NAME || '입니다' FROM EMPLOYEES A, EMPLOYEES B WHERE A.MANAGER_ID = B.EMPLOYEE_ID; -- 문제8) EMPLOYEES 테이블에서 left join하여 관리자(매니저)를 출력하고 -- 매니저 아이디가 없는 사람은 배제하고 -- 하향식으로 하며, PRIOR -- 급여는 역순으로 ORDER BY -- 출력하라. SELECT A.EMPLOYEE_ID, A.FIRST_NAME, A.MANAGER_ID, B.EMPLOYEE_ID, B.FIRST_NAME FROM EMPLOYEES A, EMPLOYEES B WHERE A.MANAGER_ID = B.EMPLOYEE_ID(+) START WITH A.MANAGER_ID IS NOT NULL -- 매니저 아이디가 없는 사람은 배제 CONNECT BY A.manager_id = PRIOR A.EMPLOYEE_ID -- 하향식 ORDER BY A.SALARY DESC; -- 문제9) EMPLOYEES 테이블에서 right join하여 -- 관리자(매니저)가 108번 -- 상향식으로 -- 급여는 역순으로 출력하라. SELECT A.EMPLOYEE_ID, A.FIRST_NAME, A.MANAGER_ID, B.EMPLOYEE_ID, B.FIRST_NAME FROM EMPLOYEES A, EMPLOYEES B WHERE A.MANAGER_ID = B.EMPLOYEE_ID AND A.MANAGER_ID = '108' CONNECT BY PRIOR A.MANAGER_ID = A.EMPLOYEE_ID ORDER BY A.SALARY DESC; | cs |
'IT Study > Database-Oracle' 카테고리의 다른 글
SubQuery (0) | 2018.06.22 |
---|---|
JOIN 예제(scott) (0) | 2018.06.22 |
JOIN (0) | 2018.06.22 |
기본 함수 예제 문제(scott) (0) | 2018.06.21 |
기본 함수 예제 문제(hr) (0) | 2018.06.21 |