MariaDb에서 뷰(View)는 하나 이상의 테이블에 대한 SQL 쿼리의 결과를 저장하는 가상의 테이블이다. 뷰는 실제 데이터를 저장하지 않으며, 뷰를 참조할 때마다 정의된 쿼리를 실행하여 데이터를 반환한다. 이를 통해 복잡한 쿼리를 간단하게 재사용하거나 보안 및 데이터 접근 제어를 쉽게 구현할 수 있다.
뷰는 CREATE VIEW 구문을 통해 생성할 수 있다.
구문:
CREATE VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition;
employees 테이블에서 특정 열만 포함하는 뷰를 생성하는 예제이다.CREATE VIEW employee_view AS
SELECT employee_id, name, department_id
FROM employees;
employee 테이블의 employee_id, name, department_id 열만 포함한다.SELECT * FROM employee_view;
CREATE VIEW sales_department AS
SELECT employee_id, name, salary
FROM employees
WHERE department_id = 3;
department_id가 3인 직원들만 반환한다.SELECT * FROM sales_department;
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;
뷰는 가상 테이블이기 때문에, 대부분의 경우 직접 데이터를 업데이트할 수 없다. 그러나 특정 조건이 충족되면 뷰를 통해 데이터를 수정할 수 있다.
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;
뷰를 수정하거나 삭제할 떄는 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;