본문 바로가기
🛢 3. Database/3-1 Mysql

[Database] 18. 뷰(VIEW) 생성 및 사용법

by 달님🌙 2021. 10. 4.
반응형

 

1. 뷰(VIEW) 개념

 

- 뷰(VIEW) : 데이터를 보여주는 역할만 하는 일종의 가상 테이블,

- 물리적으로 저장하지 않는다. (삽입/삭제/갱신 작업이 제한됨)

- 테이블의 직접적인 접근 제어 (사용자 권한에 따라 필요한 필드만 보여준다.)

- 장점 : 복잡하고 어려운 쿼리문으로 조회를 수행해야 할 때, 매번 작성해야 하는 번거로움을 해결해 준다.

 

2. VIEW TABLE 생성

 

실습 1. 앞서 했던 조인 마지막 예제 뷰 만들기

CREATE VIEW veiw_employee_info
AS
(
    SELECT E.EMP_NO, E.FIRST_NAME, E.GENDER,
       S.TO_DATE, S.SALARY, DE.DEPT_NO, DP.DEPT_NAME
    FROM EMPLOYEES E LEFT OUTER JOIN SALARIES S 
                 LEFT OUTER JOIN DEPT_EMP DE ON S.EMP_NO = DE.EMP_NO
                 LEFT OUTER JOIN DEPARTMENTS DP ON DE.DEPT_NO = DP.DEPT_NO
     ON E.EMP_NO = S.EMP_NO
LIMIT 100
);

 

실습 2. 뷰 보기 코드

SELECT * FROM employees.veiw_employee_info;

 

실습 3. view_idol_member_age 생성

CREATE VIEW view_idol_member_age
AS
(
    SELECT GROUP_NAME, MEMBER_NAME, YEAR(NOW())-YEAR(BIRTHDAY)+1 AGE
    FROM IDOL_MEMBER
);

 

실습 4. view_notice_regcount 생성

CREATE VIEW view_notice_regcount
AS
(
    SELECT WRITER_ID, COUNT(ID) CNT
    FROM NOTICE
    GROUP BY WRITER_ID
    ORDER BY CNT DESC
);

 

실습 5. view_member_secure 

CREATE VIEW view_member_secure
AS
(
    SELECT ID, NAME, GENDER
    FROM MEMBER
);

 

3. VIEW TABLE 사용

 

SELECT * FROM view_idol_member_age;
SELECT * FROM view_notice_regcount;
SELECT * FROM view_member_secure;

 

* 뷰를 통해 권한을 주어 보여주고 싶은 사람한테만 보여줄 수 있음

 

 

SQL 총정리

 

1. '데이터 조작하기'는 개발자로서 기본으로 알아야한다. 

2. 가장 중요한건 조회 기능 (SELECT)

3. 데이터 필터링하는데 쓰이는 것 : 페이징, DISTINCT, 구절 순서 및 처리 순서, JOIN사용

4. 테이블 JOIN을 위해 코드를 매번 작성해주기는 너무 힘듬 => 뷰를 생성한다!

5. 데이터베이스 테이블 설계할 때 중요한 것 

   - 각각 떨어져있는 정규화를 통해서 연결할 수 있는 기본키 (PK)와 참조키를 잘 설정해주는게 중요

 

반응형

댓글