본문 바로가기

DBMS

[DBMS] 18

VIEW 실습

1. EMPLOYEES 테이블에서 사원 이름과 그 사원의 매니저 이름이 있는 VIEW 생성 후 KING STEVEN의 사원 목록 조회

1) cmd에서 hr 계정으로 로그인 후 flower 계정에 hr 계정의 EMPLOYESS 테이블 검색 권한 부여

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 테이블 검색 권한 부여

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 테이블 검색 권한 부여

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 테이블 검색 권한 부여

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;
 

 

'DBMS' 카테고리의 다른 글

[DBMS] 20  (0) 2021.11.16
[DBMS] 19  (0) 2021.11.14
[DBMS] 17  (0) 2021.11.11
[DBMS] 16  (0) 2021.11.09
[DBMS] 15  (0) 2021.11.08