VIEW 실습
1. EMPLOYEES 테이블에서 사원 이름과 그 사원의 매니저 이름이 있는 VIEW 생성 후 KING STEVEN의 사원 목록 조회
1) cmd에서 hr 계정으로 로그인 후 flower 계정에 hr 계정의 EMPLOYESS 테이블 검색 권한 부여


2) VIEW 생성
CREATE VIEW EMPLOYEES_MANAGER
AS (
SELECT E1.LAST_NAME||' '||E1.FIRST_NAME AS ENAME, E2.LAST_NAME||' '||E2.FIRST_NAME AS MNAME
FROM HR.EMPLOYEES E1 JOIN HR.EMPLOYEES E2
ON E1.MANAGER_ID = E2.EMPLOYEE_ID
);
3) 검색
SELECT ENAME, MNAME FROM EMPLOYEES_MANAGER WHERE MNAME = 'King Steven';
※ KING STEVEN의 사원 수 조회
SELECT COUNT(ENAME) FROM EMPLOYEES_MANAGER WHERE MNAME = 'King Steven';
2. PLAYER 테이블에 TEAM_NAME 컬럼을 추가한 VIEW 생성 후 울산현대인 선수 검색
1) cmd에서 hr 계정으로 로그인 후 flower 계정에 hr 계정의 TEAM 테이블 검색 권한 부여


2) VIEW 생성
CREATE VIEW PLAYER_TEAM_NAME
AS (
SELECT T.TEAM_NAME, P.* FROM COPY_PLAYER P JOIN HR.TEAM T
ON P.TEAM_ID = T.TEAM_ID
);
3) 검색
SELECT * FROM PLAYER_TEAM_NAME WHERE TEAM_NAME = '울산현대';
3. HOMETEAM이 없는 경기장 이름도 검색하고 VIEW 생성 후 HOMETEAM_ID, STADIUM_NAME, TEAM_NAME 검색
1) cmd에서 hr 계정으로 로그인 후 flower 계정에 hr 계정의 STADIUM 테이블 검색 권한 부여


2) VIEW 생성
CREATE VIEW STADIUM_INFO
AS (
SELECT S.HOMETEAM_ID, S.STADIUM_NAME, T.TEAM_NAME
FROM HR.TEAM T RIGHT OUTER JOIN HR.STADIUM S
ON T.TEAM_ID = S.HOMETEAM_ID
);
3) 검색
SELECT * FROM STADIUM_INFO WHERE TEAM_NAME IS NULL;
4. EMPLOYEES 테이블에서 모든 사원 검색 후 매니저는 JOB_ID도 검색하는 VIEW 생성 후 사원들의 FIRST_NAME 모두 검색
1) cmd에서 hr 계정으로 로그인 후 flower 계정에 hr 계정의 EMPLOYEES 테이블 검색 권한 부여


2) VIEW 생성 후 검색
CREATE VIEW MANAGER_INFO
AS (
SELECT E2.JOB_ID, E1.FIRST_NAME
FROM HR.EMPLOYEES E1 LEFT OUTER JOIN
(
SELECT JOB_ID, MANAGER_ID M FROM HR.EMPLOYEES
) E2
ON E1.EMPLOYEE_ID = E2.M
);
※ 매니저가 아니면서 FIRST_NAME이 A로 시작하는 사원검색
SELECT FIRST_NAME FROM MANAGER_INFO
WHERE JOB_ID IS NOT NULL
GROUP BY FIRST_NAME;