hello world
[DB] VIEW 테이블이란 ? 본문
728x90
1. VIEW 테이블이란?
- 하나의 가상 테이블이라고 생각하면된다.
- 실제 데이터가 저장되는것이 아니다, 뷰를 통해 데이터를 관리할 수 있다.
- VIEW와 TABLE과의 차이점은 그냥 TABLE은 실질적인 데이터가 있지만 VIEW는 데이터가 없고 SQL만 저장한다.
1-1) 뷰 생성 쿼리
CREATE 생략가능[OR REPLACE] 생략가능[FORCE | NOFORCE] VIEW 뷰명
AS (SELECT문)
생략가능[WITH CHECK OPTION 생략가능[CONSTRAINT 제약조건명]]
생략가능[WITH READ ONLY 생략가능[CONSTRAINT 제약조건명]]
- OR REPLACE option : 해당 구문 사용하면 뷰를 수정할 때 DROP 없이 수정 가능
- With Check option : 주어진 제약 조건에 맞는 데이터만 입력 및 수정 가능
- With read only : select 만 가능
--학교 테이블에서 학년이 3인 학생들의 성명과 학번을 학교뷰테이블이라는 뷰로 만드는 쿼리
CREATE OR REPLACE VIEW 학교뷰테이블(성명, 학번)
AS SELECT 성명, 학번
FROM 학교
WHERE 학년 ='3';
2. VIEW 사용하는 이유
- 한개의 뷰로 여러 테이블에 대한 데이터를 검색할 수 있다.
- 뷰를 통해서만 데이터에 접근하게 되면 뷰에 없는 데이터를 안전하게 보호할 수 있다.
기본 조회 쿼리
select
stu.name,
d.deptno
from student stu, department d, professor p
where student deptno = d.deptno
and d.pno = p.id
VIEW 생성해서 조회하는 쿼리
CREATE OR REPLACE VIEW v1
AS
select
stu.name,
d.deptno
from student stu, department d, professor p
where student deptno = d.deptno
and d.pno = p.id;
쉽게말하면
위와 같이 여러 테이블을 join한 복잡한 쿼리문이 있다고 가정했을때
조인 쿼리문을 매번 작성하기 보다는 조회 쿼리문을
뷰로 만들어놓고 뷰를 조회하는 것이 편하기 때문에 VIEW를 사용
3. VIEW 사용 단점
- 뷰로 구성된 내용에 대한 삽입,삭제,갱신 연산에 제약이있다.
단순 뷰인경우 INSERT,UPDATE, DELETE 가 자유롭다 그러나 함수, UNION,GROUP BY등을 사용한 복합 뷰인 경우 불가 능 하다. (조인만 사용한 복합 뷰는 제한적으로 가능)
'WEB > DB' 카테고리의 다른 글
이름 마스킹처리 MYSQL (0) | 2022.11.11 |
---|---|
[My-SQL] DATEDIFF , DATEADD 날짜 계산 함수 (0) | 2021.02.09 |
INNER JOIN / OUTER JOIN / LEFT OUTER JOIN 차이 및 예제 (7) | 2020.06.23 |
[PL] 프로시저 예제 (0) | 2020.04.08 |
[PL] 특정 문자가 포함된 프로시저 검색 쿼리 (0) | 2020.04.08 |
Comments