MariaDB View

찌끅·2024년 10월 14일

MariaDB View

MariaDb에서 뷰(View)는 하나 이상의 테이블에 대한 SQL 쿼리의 결과를 저장하는 가상의 테이블이다. 뷰는 실제 데이터를 저장하지 않으며, 뷰를 참조할 때마다 정의된 쿼리를 실행하여 데이터를 반환한다. 이를 통해 복잡한 쿼리를 간단하게 재사용하거나 보안 및 데이터 접근 제어를 쉽게 구현할 수 있다.

1. 뷰(View)의 특징

  • 가상 테이블: 뷰는 물리적으로 데이터를 저장하지 않고, 데이터를 조회할 떄마다 실행되는 쿼리 결과를 반환한다.
  • 데이터 보안: 뷰를 통해 특정 열이나 행만 노출할 수 있어, 사용자에게 보여줄 데이터만 제한적으로 제공할 수 있다.
  • 쿼리 간소화: 복잡한 쿼리를 하나의 뷰로 정의하여, 반복적인 쿼리 작성 없이 뷰를 호출하여 결과를 쉽게 조회할 수 있다.

2. 뷰 생성

뷰는 CREATE VIEW 구문을 통해 생성할 수 있다.

구문:

CREATE VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition;

3. 뷰의 예제

예제 1: 기본 뷰 생성

  • employees 테이블에서 특정 열만 포함하는 뷰를 생성하는 예제이다.
CREATE VIEW employee_view AS
SELECT employee_id, name, department_id
FROM employees;
  • 이 뷰는employee 테이블의 employee_id, name, department_id 열만 포함한다.
SELECT * FROM employee_view;

예제 2: 조건을 사용한 뷰

  • 특정 부서의 직원들만 포함하는 뷰를 생성한다.
CREATE VIEW sales_department AS
SELECT employee_id, name, salary
FROM employees
WHERE department_id = 3;
  • 이 뷰는 department_id가 3인 직원들만 반환한다.
SELECT * FROM sales_department;

예제 3: 집계 결과를 포함하는 뷰

  • 부서별 평균 급여를 조회할 수 있는 뷰를 생성한다.
CREATE VIEW department_avg_salary AS
SELECT department_id, AVG(salary) AS avg_salary
FROM employees
GROUP BY department_id;
SELECT * FROM department_avg_salary;

4. 뷰 갱신 (Updating a View)

뷰는 가상 테이블이기 때문에, 대부분의 경우 직접 데이터를 업데이트할 수 없다. 그러나 특정 조건이 충족되면 뷰를 통해 데이터를 수정할 수 있다.

  • 업데이트 가능한 뷰 예제
CREATE VIEW updateable_employee AS
SELECT employee_id, name, salary
FROM employees
WHERE department_id = 3;
  • 위와 같은 뷰는 기본 테이블의 열과 직접 연결되어 있어, 데이터를 수정할 수 있다.
UPDATE updateable_employee
SET salary = salary * 1.1
WHERE employee_id = 5;
  • 주의: 뷰가 여러 테이블을 참조하거나 집계 함수가 포함된 경우에는 업데이트할 수 없다.

5. 뷰 수정 및 삭제

뷰를 수정하거나 삭제할 떄는 ALTER VIEW 또는 DROP VIEW를 사용한다.

뷰 수정

뷰의 정의를 변경하고 싶다면, ALTER VIEW를 사용한다.

ALTER VIEW employee_view AS
SELECT employee_id, name, department_id, salary
FROM employees;

뷰 삭제

뷰를 삭제하려면 DROP VIEW를 사용한다.

DROP VIEW employee_view;

0개의 댓글