본문으로 바로가기
반응형

 

 

 

 

 

 

지난 포스팅에서 SQL 서브쿼리에 대해서 다뤄봤습니다.

 

https://healthdevelop.tistory.com/entry/db7

 

[Database] SQL RANK(), DENSE_RANK() | 서브쿼리(SUBQUERY) | INLINE VIEW | SQL 순위 구하기 (java로 웹개발하기)(day2

지난 포스팅에서 SQL 조인문(JOIN)에 대해서 다뤄봤습니다. [Database] SQL JOIN | INNER JOIN | LEFT(RIGHT) OUTER JOIN | CROSS JOIN | SELF JOIN | NON EQUI JOIN | SQL 테이블 3개 조인(j 지난 포스팅에서 SQ..

healthdevelop.tistory.com

 

 

 

 

이번 포스팅에서는 뷰(VIEW)에 대해서 다뤄보겠습니다.

 

 

 

 

 

 

 


 

 

 

▶ VIEW

 

 

 

 

VIEW란,,

 

 

SELECT 쿼리의 실행 결과를 화면에 저장한 논리적 가상 테이블입니다.

 


실제 테이블과는 다르게 실질적 데이터를 저장하고 있진 않지만


사용자는 테이블을 사용하는 것과 동일하게 사용이 가능하죠.

 

 

 

 

 

 

그림으로 보면 아래와 같습니다.

 

 

 

 

 

미리 생성된 VIEW를 

 

 

사용자가 조회, 수정 및 삭제를 할 수가 있죠.

 

 

 

 

 

 

 

● VIEW 의 장점

 

 

   ○ 보안강화

       - 기존의 테이블에서 파생된 것이 VIEW 입니다. 따라서 기존 테이블 보호를 할 수 있습니다.

 

   ○ 효율성이 좋음

       - 새로운 물리적 테이블을 생성하는 것이 아닌, 논리적 가상의 테이블을 생성하기에

         데이터 효율 측면에서 좋습니다.

 

 

 

 

 

 

 

 

 

 

 

 

▷ VIEW 생성 예시


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

▶ DML명령어로 VIEW 조작이 불가능한 경우

 

 

 

 

 

VIEW는 말 그대로 VIEW 입니다.

 

단지 보기 위해 생성한 가상의 테이블인데요.

 

 

 

이러한 VIEW도 수정을 해야 할 경우도 생길 수 있습니다.

 

 

 

하지만 VIEW는 제약조건들을 어기면 함부로 조작할 수 없는데요.

 

 

 

 

한 번 알아보도록 하죠.

 

 


 

 

 

 

위와 같은 제약사항들을 어기면 

 

DML로 VIEW를 조작할 수 없게 됩니다.

 

 

 

 

각각의 경우마다 예시를 통해 알아봅시다.

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

▶ VIEW 구조

 

 

 

 

 

 


▶ VIEW 옵션

 

 

 

 

 

 

 


▶ INLINE VIEW

 

 

 

 

 

 

 

 

 

 

다소 생소하겠지만 지금은 개념만 익히시고,

 

간단한 예제를 통해 익히길 바랍니다.

 

 

 

 

 

 

그럼 간단한 VIEW 생성 예제를 풀어봅시다.

 

 

 

 

 


SQL(VIEW) 예제


 

 

 

 

 

난이도 ★

 

 

 

예제 1

 

 

Q :  id(number), name(varchar2(10)), age(number)를 속성으로 하는

      'SAMPLE_T' TABLE을 추가하여라.

       

      그리고 id와 이름만을 속성으로 가진 V_SAMPLE_T 뷰를 만들어라.

   


 

 

 

 

풀이 :

 

 



CREATE TABLE SAMPLE_T (
    id NUMBER NOT NULL,
    name VARCHAR2(10),
    age NUMBER
);

INSERT INTO SAMPLE_T VALUES(1, '홍길동', 30);
INSERT INTO SAMPLE_T VALUES(2, NULL, 24);
INSERT INTO SAMPLE_T VALUES(3, '김정훈', NULL);

CREATE VIEW V_SAMPLE_T AS
SELECT id, name FROM SAMPLE_T;

SELECT * FROM V_SAMPLE_T;

 

 

 


 




 

 

 

 

이상으로 VIEW에 대해 알아봤습니다.

 

 

 

 

다음 포스팅에서는 SQL SEQUENCE에 대해 다뤄보고자 합니다.

반응형