오늘은 테이블 말고 뷰 (VIEW)라는 주제에 대해서 정리해보자.
뷰는 가상의 테이블이다.
또는 DB의 SELECT 문을 저장한 OBJECT라고 할 수 있다.
말 그대로 데이터는 없고, SQL만 저장되어있는 OBJECT를 말한다.
뷰는 기본 테이블과 같이 행과 열로 구성되지만, 다른 테이블에 있는 데이터를 보여줄 뿐이며, 실제 테이블과 달리
데이터 자체를 포함하고 있는 것은 아니다. 뷰를 사용하면 여러 테이블이나 뷰를 하나의 테이블인 것 처럼 볼 수 있다.
VIEW를 SELECT 하게 되면 VIEW가 가지고 있는 SQL문이 실행이 되는 것과 같다.
데이터가 실제로 없기 때문에 ORDER BY 구문은 뷰의 정의에서 무의미하다.
view를 사용하는 이유
테이블을 쓰면 되는데 왜 굳이 view라는 object를 사용할까?
> 보안과 사용자의 편의성을 높이기 위해서
view 생성 및 삭제
생성문<
CREATE VIEW [뷰 제목] AS SELCT 구문;
삭제문<
DROP VIEW [뷰 제목];
만약 account_view라는 이름의 쿼리가 있다고 하자.
SELECT name,
money_received,
money_sent,
(money_received - money_sent) AS balance,
address,
...
FROM table_customers c
JOIN accounts_table a
ON a.customer_id = c.customer_id
간단한 쿼리
SELECT name,
balance
FROM accounts_view
그럼 RDBMS는 간단한 쿼리를 통해서, 동일한 뷰를 치환해 버리며, 아래의 쿼리를 쿼리 최적화도구로 전송한다.
SELECT name,
balance
FROM (SELECT name,
money_received,
money_sent,
(money_received - money_sent) AS balance,
address,
...
FROM table_customers c JOIN accounts_table a
ON a.customer_id = c.customer_id )
소스 참조
https://stricky.tistory.com/323
https://ko.wikipedia.org/wiki/VIEW_(SQL)