개발이야기/MySQL

[MySQL] 뷰(VIEW) 테이블 생성하기, 예제, 사용법과 목적

후린개발자 2023. 9. 22.
반응형

뷰(VIEW) 테이블 이란?

 

ㅇ 뷰(View)는 하나 이상의 기존 테이블로부터 생성되는 가상 테이블입니다. 뷰는 데이터베이스 내에서 쿼리를 간소화하거나 복잡한 데이터 검색 및 조작을 쉽게 하기 위해 사용됩니다. 뷰는 실제 데이터를 저장하지 않고, 저장된 데이터의 가상 표현을 제공합니다.

 

뷰(VIEW) 사용목적

 

1. 데이터 가시성 제어: 뷰를 사용하여 사용자에게 데이터베이스의 일부만 표시하거나 특정 열을 숨길 수 있습니다. 이렇게 하면 보안을 강화하고 중요한 데이터를 보호할 수 있습니다.

2. 복잡한 쿼리 단순화: 복잡한 SQL 쿼리를 미리 정의된 뷰로 간소화할 수 있습니다. 뷰를 사용하면 사용자가 복잡한 조인 또는 집계 연산을 직접 수행하지 않고도 쉽게 데이터에 액세스할 수 있습니다.

3. 데이터 변환 및 형식 맞춤: 뷰를 사용하여 데이터를 원하는 형식으로 변환하거나 가공할 수 있습니다. 예를 들어, 날짜 형식을 변경하거나 금액을 다른 통화로 변환할 수 있습니다.

4. 여러 테이블 간의 조인: 여러 테이블에서 데이터를 가져와서 하나의 뷰로 결합하고, 이를 통해 뷰를 통해 쉽게 다양한 관련 데이터에 액세스할 수 있습니다.

5. 비즈니스 논리 분리: 뷰를 사용하여 비즈니스 로직을 데이터베이스 레벨로 옮기고, 응용 프로그램 코드에서 데이터에 대한 로직을 분리할 수 있습니다. 이렇게 하면 코드의 재사용성을 높이고 유지 보수를 간편하게 할 수 있습니다.

6. 보고서 생성: 뷰를 사용하여 보고서 생성을 용이하게 만들 수 있습니다. 필요한 데이터를 뷰로 정의하고 보고서 생성 도구 또는 응용 프로그램에서 해당 뷰를 사용하여 보고서를 생성할 수 있습니다.

7. 뷰를 통한 접근 경로 제공: 뷰를 사용하여 사용자 또는 응용 프로그램에 대한 데이터베이스의 접근 경로를 정의할 수 있습니다. 이를 통해 데이터베이스에 표준화된 인터페이스를 제공할 수 있습니다.

 

뷰(VIEW) 사용법

 

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

 

ㅇ view_name: 뷰의 이름
ㅇ column1, column2, ...은 선택적으로 뷰에 포함할 열의 목록
ㅇ table_name: 기존 테이블의 이름
ㅇ condition: 선택적으로 행을 필터링하는 조건

 

뷰(VIEW) 예제

 

-- employees 테이블
CREATE TABLE employees (
    employee_id INT PRIMARY KEY,
    first_name VARCHAR(50),
    last_name VARCHAR(50),
    email VARCHAR(100),
    hire_date DATE,
    department_id INT,
    salary DECIMAL(10, 2)
);

-- employees 테이블에 데이터 삽입
INSERT INTO employees (employee_id, first_name, last_name, email, hire_date, department_id, salary)
VALUES
    (1, 'John', 'Doe', 'john.doe@example.com', '2020-01-15', 1, 60000),
    (2, 'Jane', 'Smith', 'jane.smith@example.com', '2019-08-20', 2, 45000),
    (3, 'Alice', 'Johnson', 'alice.johnson@example.com', '2021-03-10', 1, 70000),
    (4, 'Bob', 'Williams', 'bob.williams@example.com', '2022-05-05', 2, 60000),
    (5, 'Eva', 'Brown', 'eva.brown@example.com', '2022-02-18', 3, 45000),
    (6, 'Michael', 'Clark', 'michael.clark@example.com', '2020-11-30', 1, 70000),
    (7, 'Sara', 'Garcia', 'sara.garcia@example.com', '2021-09-25', 2, 60000),
    (8, 'David', 'Lopez', 'david.lopez@example.com', '2019-12-08', 3, 45000),
    (9, 'Emily', 'Taylor', 'emily.taylor@example.com', '2020-04-12', 1, 70000),
    (10, 'Daniel', 'Anderson', 'daniel.anderson@example.com', '2022-03-15', 2, 70000);

-- 급여가 50000 이상인 직원을 선택하는 뷰
CREATE VIEW high_salary_employees AS
SELECT employee_id, first_name, last_name, email, salary
FROM employees
WHERE salary >= 50000;

 

high_salary_employees VIEW 테이블은 employees 테이블을 기반으로 하며, 급여가 50000 이상인 직원만을 선택하여 보여줍니다. 뷰를 사용하면 데이터베이스 사용자가 간단한 쿼리로 이 정보를 검색할 수 있습니다.

 

 

기존 테이블

 

SELECT * FROM high_salary_employees;

 

생성한 뷰(View) 테이블은 일반적인 SELECT 문을 사용하여 조회할 수 있습니다.

 

뷰 테이블

 

반응형

댓글

💲 추천 글