뷰는 데이터베이스에서 특정 쿼리의 결과를 가상 테이블로 사용할 수 있게 만든 객체입니다.
가상 테이블
데이터 접근 제어
쿼리 단순화
CREATE VIEW 뷰이름 AS
SELECT 열1, 열2, ...
FROM 테이블명
WHERE 조건;
-- 기본 뷰 생성
CREATE VIEW emp_vu AS
SELECT * FROM emp;
-- 조건부 뷰 생성
CREATE VIEW emp_vu_10 AS
SELECT empno, ename, mgr, job
FROM emp
WHERE deptno = 10;
-- 열 별칭을 사용한 뷰
CREATE VIEW emp_vu_20 AS
SELECT empno AS no, ename AS name, mgr, job
FROM emp
WHERE deptno = 20;
-- 연봉 계산 뷰
CREATE VIEW emp_sal AS
SELECT
empno,
ename,
sal,
(sal * 12 + IFNULL(comm, 0)) AS annual_salary
FROM emp;
-- 조인을 사용한 뷰
CREATE VIEW emp_salgrade AS
SELECT
e.empno,
e.ename,
e.job,
(e.sal * 12 + IFNULL(e.comm, 0)) AS annsal,
s.grade
FROM emp e
INNER JOIN salgrade s ON e.sal BETWEEN s.losal AND s.hisal;
-- 모든 뷰 조회
SHOW FULL TABLES WHERE Table_type = 'VIEW';
-- 특정 데이터베이스의 뷰 정보
SELECT *
FROM information_schema.views
WHERE table_schema = '데이터베이스이름';
SHOW CREATE VIEW 뷰이름;
SELECT e.empno, e.ename, d.deptno, d.dname
FROM (SELECT * FROM emp WHERE deptno IN (10, 20)) e
INNER JOIN dept d
ON e.deptno = d.deptno;
CREATE OR REPLACE VIEW emp_sal AS
SELECT empno, ename, job, sal * 12 + IFNULL(comm, 0) AS annsal
FROM emp;
보안 강화
데이터 추상화
데이터 일관성