[SQL] 뷰 작성 & 삭제

가비·2021년 1월 3일
0

[SQL]

목록 보기
10/13

뷰란? 테이블과 같은 부류의 데이터베이스 객체 중 하나로 FROM 구에 기술된 서브쿼리에 이름을 붙이고 데이터베이스 객체화하여 쓰기 쉽게 한 것을 뷰라고 한다. 즉, 뷰는 SELECT 명령을 기록하는 데이터베이스 객체다.

  • 뷰를 참조하면 정의된 SELECT 명령의 실행결과를 테이블처럼 사용할 수 있다.
  • 서브쿼리 부분을 '뷰 객체'로 만들면 SELECT 명령을 간략하게 표현할 수 있고 데이터베이스에 등록해 두었다가 간단히 실행할 수도 있다.

가상 테이블

  • 뷰는 테이블처럼 취급할 수 있지만 데이터를 쓰거나 지울 수 있는 저장공간을 가지지 않기 때문에 가상 테이블이라 불리기도 한다.
    👉 이 때문에 SELECT 명령에서만 사용하는 것을 권장한다.

뷰 작성과 삭제

  • 뷰는 데이터베이스 객체이기 때문에 DDL로 작성하거나 삭제한다.

뷰 작성

CREATE VIEW 뷰명 AS SELECT 명령
mysql> CREATE VIEW sample_view_67 AS SELECT * FROM sample54;
Query OK, 0 rows affected (0.01 sec)

mysql> SELECT * FROM sample_view_67;
+------+------+
| no   | a    |
+------+------+
|    1 |  900 |
|    2 |  900 |
+------+------+
2 rows in set (0.00 sec)
CREATE VIEW 뷰명 (열명1, 열명2, ...) AS SELECT 명령
mysql> CREATE VIEW sample_view_672(n,v,v2) AS
    -> SELECT no,a,a*2 FROM sample54;
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT * FROM sample_view_672 WHERE n = 1;
+------+------+------+
| n    | v    | v2   |
+------+------+------+
|    1 |  900 | 1800 |
+------+------+------+
1 row in set (0.00 sec)
  • AS 키워드는 별명을 붙일 때와는 달리 생략 할 수 없다.
  • 열을 지정할 경우 SELECT 구와 같은 수의 열을 지정해야 한다.
    👉 열 이외 자료형이나 제약은 지정할 수 없다.

뷰 삭제

DROP VIEW 뷰명
mysql> DROP VIEW sample_view_67;
Query OK, 0 rows affected (0.00 sec)

뷰의 단점

  • 뷰는 데이터베이스 객체로 저장장치에 저장되지만 테이블과 달리 대량의 저장공간을 필요로 하지 않는다.
    👉 데이터베이스에 저장되는 것은 SELECT 명령으로 저장공간을 소비하지 않는 대신 CPU 자원을 사용한다.
  • 뷰를 참조하면 뷰에 등록된 SELECT 명령이 실행되고 실행 결과는 일시적으로 보존된다.

머티리얼라이즈드 뷰(Materialized View)

🙅🏻 MySQL에서는 사용할 수 없다..
✔️ 뷰의 근원 테이블에 보관하는 데이터양이 많은 경우, 뷰를 사용한 집계처리, 뷰를 중첩해서 사용하는 경우 처리 속도가 떨어진다.

  • 위와 같은 상황을 회피하기 위해 사용하는 것이 머티리얼라이즈드 뷰이다.
  • 데이터를 일시적으로 저장하여 사용하는 것이 아니라 테이블처럼 저장장치에 저장해두고 사용한다.
    👉 일반적인 뷰처럼 SELECT 명령을 실행할 필요가 없다.
    !but 데이터가 변경된 경우 SELECT 명령을 재실행하여 데이터를 다시 저장한다. (RDBMS가 자동으로 실행)

함수 테이블

✔️ 뷰를 구성하는 SELECT 명령은 단독으로 실행할 수 있어야 하기 때문에 상관 서브쿼리는 사용할 수 없다.

  • 함수 테이블(테이블을 결괏값으로 반환해주는 사용자정의 함수)의 함수에는 인수를 지정할 수 있기 때문에 인수의 값에 따라 WHERE 조건을 붙여 결괏값을 바꾸면 상관 서브쿼리처럼 동작할 수 있다.

0개의 댓글