[데이터 베이스] VIEW
VIEW는 하나 이상의 테이블에서 가져온 데이터를 기반으로 하는 가상 테이블로 데이터베이스 내에서 실제로 데이터를 저장하지 않고 정의된 SELECT 문에 기반한 결과 세트를 제공한다.
VIEW를 사용하면 복잡한 쿼리를 단순하게 표현할 수 있고, 데이터 접근을 제한하여 데이터를 쉽게 관리할 수 있다.
VIEW를 사용하면 특정 열이나 행만을 노출시키고 나머지 데이터는 숨길 수 있어 사용자가 접근할 수 있는 데이터를 제한할 수 있다.
그리고 복잡한 쿼리를 VIEW로 정의해두면 쿼리를 직접 실행하지 않고 VIEW를 통해 필요한 데이터에 접근할 수 있고, 한 번 정의를 하면 데이터베이스 내에서 재사용될 수 있어 코드의 중복을 줄이고 일관성을 유지할 수 있다.
다만 VIEW가 하나 이상의 기반 테이블에 의존하기 때문에 기반 테이블의 구조가 변경될 경우 VIEW도 그에 맞게 수정해야 하기 때문에 유지 보수의 복잡성을 증가시킨다.
CREATE VIEW view_name AS -- view_name이라는 이름으로 아래의 쿼리에 해당하는 내용을 view를 저장
SELECT column1, column2
FROM table_name
WHERE condition;
SELECT * FROM view_name; -- 저장된 view의 내용을 출력
- CREATE OR REPLACE VIEW
이는 새로운 VIEW를 생성하거나 이미 존재하는 VIEW가 있다면 그 VIEW를 새 정의로 대체한다.
이 명령어는 VIEW의 정의를 변경할 때 유용하게 사용되며 VIEW가 이미 존재하는 경우 새로 DROP하고 CREATE하는 과정 없이 한 번에 VIEW를 업데이트할 수 있다.
- ALTER
테이블, 열, 인덱스 등과 같은 데이터베이스 객체의 구조를 변경하는 데 사용된다.
테이블에 열을 추가하거나, 열의 데이터 타입을 변경하고, 제약조건을 추가하거나 변경하는 등의 작업을 수행할 수 있다.
ALTER TABLE employees ADD COLUMN email VARCHAR(255); -- employees테이블에 email열 추가
ALTER TABLE employees ALTER COLUMN salary TYPE NUMERIC; -- employees테이블에 타입 NUMERIC으로 변경
- DROP
더 이상 필요하지 않거나 잘못 생성된 VIEW를 정리할 때 데이터베이스에서 삭제하는 명령어이다.
DROP VIEW if EXISTS view_name;
이때 if EXISTS는 해당 VIEW가 존재하지 않는 경우에도 오류를 발생시키지 않고 명령어를 무시하게 한다.