뷰란? 테이블과 같은 부류의 데이터베이스 객체 중 하나로 FROM 구에 기술된 서브쿼리에 이름을 붙이고 데이터베이스 객체화하여 쓰기 쉽게 한 것을 뷰라고 한다. 즉, 뷰는 SELECT 명령을 기록하는 데이터베이스 객체다.
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)
DROP VIEW 뷰명
mysql> DROP VIEW sample_view_67;
Query OK, 0 rows affected (0.00 sec)
🙅🏻 MySQL에서는 사용할 수 없다..
✔️ 뷰의 근원 테이블에 보관하는 데이터양이 많은 경우, 뷰를 사용한 집계처리, 뷰를 중첩해서 사용하는 경우 처리 속도가 떨어진다.
!but
데이터가 변경된 경우 SELECT 명령을 재실행하여 데이터를 다시 저장한다. (RDBMS가 자동으로 실행)✔️ 뷰를 구성하는 SELECT 명령은 단독으로 실행할 수 있어야 하기 때문에 상관 서브쿼리는 사용할 수 없다.