일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Notice
Tags
- ERD
- 30일챌린지
- 직장인일기
- 회사생활
- 환생
- Update
- 인덱스
- SQLD
- Drop
- 빅데이터
- 보울룸
- 회사싫어
- 넷플릭스
- 전생
- 일기
- 테이블삭제
- null
- SQL
- where절
- ROWNUM
- 30일글쓰기
- 책리뷰
- constraint
- data
- 직장생활
- rename
- INSERT
- 데이터모델링
- 홈트
- 도전
Archives
- Today
- Total
최보름달
[SQL] 뷰(View) 본문
뷰(view)
테이블은 실제로 데이터를 가지고 있는 반면, 뷰(view)는 실제 데이터를 가지고 있지 않다.
뷰는 단지 뷰 정의 (view definition)만을 가지고 있다.
질의에서 뷰가 사용되면 뷰 정의를 참조해서 DBMS 내부적으로 질의를 재작성 하여 질의를 수행한다.
뷰는 실제 데이터를 가지고 있지 않지만 테이블이 수행하는 역할을 수행하기 때문에 가상 테이블(virtual table)이라고도 한다.
뷰의 장점
독립성 : 테이블 구조가 변경되어도 뷰를 사용하는 응용 프로그램은 변경하지 않아도 된다.
편리성 : 복잡한 질의를 뷰로 생성함으로써 관련 질의를 단순하게 작성할 수 있다.
보안성 : 직원의 급여정보와 같이 숨기고 싶은 정보가 존재한다면 뷰를 생성할 때 해당 컬럼을 빼고 생성해서 감출 수 있다.
뷰 생성하기
CREATE VIEW V_PLAYER_TEAM AS
SELECT P.PLAYER_NAME, P.POSITION, P.BACK_NO, P.TEAM_ID, T.TEAM_NAME
FROM PLAYER P, TEAM T
WHERE P.TEAM_ID = T.TEAM_ID ;
뷰의 명칭은 "V_PLAYER_TEAM" 이다.
이미 존재하는 뷰를 참조해서 생성할 수도 있다.
CREATE VIEW V_PLAYER_TEAM_FILTER AS
SELECT PLAYER_NAME, POSITION, BACK_NO, TEAM_ID, TEAM_NAME
FROM V_PLAYER_TEAM
WHERE POSITION IN ('GK', 'MF') ;
뷰 사용하기
SELECT PLAYER_NAME, POSITION, BACK_NO, TEAM_ID, TEAM_NAME
FROM V_PLAYER_TEAM
WHERE PLAYER_NAME LIKE '황%' ;
뷰 제거하기
DROP VIEW V_PLAYER_TEAM ;
DROP VIEW V_PLAYER_TEAM_FILTER ;
kdata 한국데이터진흥원에서 출간한 SQL 전문가 가이드 2013 Edition을 요약했습니다.
'문송한 회사생활 > SQL 공부' 카테고리의 다른 글
[SQL] 윈도우 함수 (WINDOW FUNCTION) (1) | 2020.08.17 |
---|---|
[SQL] 그룹 함수 Group Function (ROLLUP, CUBE, GROUPING SETS) (0) | 2020.08.16 |
[SQL] 셀프 조인(SELF JOIN) (0) | 2020.08.16 |
[SQL] 오라클 계층형 질의 (Hierarchical Query) (0) | 2020.08.16 |
[SQL] 집합 연산자 (UNION, UNION ALL, INTERSECT, EXCEPT, MINUS) (0) | 2020.08.15 |