뷰 View
기능은 SELECT
구문을 통해 조회된 결과 테이블을 실제 존재하는 테이블처럼 저장하여 실제 테이블처럼 사용할 수 있도록 만든 가상 테이블입니다.위 테이블의 정보를 사용해서 (학생 이름, 도서 이름)의 데이터를 가진 도서 대출 정보 테이블을 만든다고 가정하면 새 테이블을 만들 수 있습니다.
그러나 이 방법은 새로 테이블을 정의하는 과정에서 생기는 물리적 공간 차지, 외래키 제약조건 정의 등 여러가지 복잡한 추가 작업을 발생시키게 됩니다.
그래서 이를 테이블 생성 대신 뷰를 만들어서 저장하면 편리하게 원하는 데이터만 골라서 사용할 수 있습니다.
뷰의 동작은 실제 테이블을 저장하는 것이 아닌 SELECT
질의문을 View alias로 저장해 놨다가 뷰를 호출하면 SELECT
구문을 실행하고 결과를 반환하는 식으로 수행되게 됩니다.
학생 이름과 대출 도서를 확인하는 SELECT
구문은 다음과 같습니다.
이를 뷰로 만들면 다음과 같습니다.
CREATE VIEW Vloan_infos_table
AS SELECT s.name, b.book_title
FROM students_table s
JOIN book_loans_table b ON s.student_id = b.student_id
Vloan_infos_table
이라는 뷰 이름으로 SELECT
질의문을 저장해놨다가. 호출되면 SELECT
질의문을 수행하고 그 결과를 반환합니다.
뷰에서는 데이터 조작문도 사용이 가능한데요. 특정 조건을 충족했을 경우에만 데이터 조작이 가능합니다.
- 단일 테이블 기반 뷰
- 기본키 포함
- 집계 함수가 사용되지 않은 SELECT 구문 뷰
동작 방식을 설명하면서 뷰를 생성했는데요. 다시 뷰 생성 방법을 정의하면 다음과 같습니다.
CREATE VIEW 뷰_이름 (열, ...)
AS SELECT 구문...
여기서 열은 뷰에서 사용할 열을 지정합니다. 열 이름을 지정하지 않으면 SELECT의 전체 결과 열을 지정하고, 열을 지정하면 해당 열의 이름을 가진 열만 SELECT 구문에서 가져옵니다.
뷰를 수정하는 방법은 OR REPLACE
키워드를 CREATE
다음에 붙여서 수정합니다.
CREATE OR REPLACE VIEW 뷰_이름
AS SELECT ...
이 구문에 작성된 SELECT의 결과로 뷰를 수정하게 됩니다.
마지막으로 뷰의 삭제는 DROP
구문을 사용합니다.
DROP VIEW 뷰_이름