MariaDB / VIEW

VIEW

VIEW는 가상의 테이블입니다. 실제로 데이터를 저장하지 않고, 기존의 하나 이상의 테이블을 기반으로 한 쿼리 결과를 테이블처럼 사용할 수 있게 해줍니다. 뷰는 복잡한 쿼리를 단순화하고, 보안 및 데이터 관리에 유용하게 사용됩니다.

예제 데이터베이스

예제로 사용한 데이터베이스는 employees입니다.

VIEW 만들기

CREATE VIEW

  • 예를 들어 남자인 직원의 first_name과 last_name을 VIEW로 만든다고 하면, 우선 VIEW로 만들 데이터를 추출하는 쿼리를 만듭니다.
SELECT
  first_name, last_name
FROM employees
WHERE gender = 'M'
;
  • CREATE VIEW로 VIEW를 만듭니다. v_employees_male는 VIEW의 이름으로, 적절히 정합니다.
CREATE VIEW v_employees_male
AS
  SELECT
    first_name, last_name
  FROM employees
  WHERE gender = 'M'
;

CREATE OR REPLACE VIEW

  • CREATE VIEW로 VIEW를 만들면, 기존에 같은 이름의 VIEW가 있으면 VIEW가 생성되지 않습니다. CREATE VIEW 대신 CREATE OR REPLACE VIEW를 사용하면, 같은 이름의 VIEW가 있을 때 기존 VIEW를 대체합니다.
CREATE OR REPLACE VIEW v_employees_male
AS
  SELECT
    first_name, last_name
  FROM employees
  WHERE gender = 'M'
;

CREATE VIEW IF NOT EXISTS

  • CREATE VIEW 대신 CREATE VIEW IF NOT EXISTS를 사용하면, 같은 이름의 VIEW가 없을 때만 VIEW를 만든다.
CREATE VIEW IF NOT EXISTS v_employees_male
AS
  SELECT
    first_name, last_name
  FROM employees
  WHERE gender = 'M'
;

VIEW 수정하기

  • VIEW 수정은 ALTER VIEW로 합니다. CREATE 자리에 ALTER가 있다고 보면 됩니다. 수정하는 것이므로, 기존에 정의된 VIEW가 있어야 합니다.
  • 아래는 위에서 만든 VIEW에 gender를 추가한 것입니다.
ALTER VIEW v_employees_male
AS
  SELECT
    first_name, last_name, gender
  FROM employees
  WHERE gender = 'M'
;

VIEW 삭제하기

  • DROP VIEW로 VIEW를 삭제합니다. 예를 들어 VIEW의 이름이 v_employees_male이라면 다음과 같이 합니다.
DROP VIEW v_employees_male;