뷰
뷰의 개념
- 실제 데이터를 저장하지 않는 가상 테이블 (virtual table)
- 데이터베이스를 바라보는 창문 (window)
- 뷰에 대해 사용자가 질의를 요청할 때 비로소 DBMS 는 뷰 정의를 참조하여 질의를 수행 하고 그 결과를 사용자에게 반환
- 주로 기반 테이블로부터 정의되지만 또 다른 뷰를 기반으로도 정의될 수도 있음
뷰의 장점
- 편의성 : 복잡한 질의문 작성이 쉽고 간단해진다
- 보안성 : 데이터 보안 유지가 쉽다
- 재사용성 : 반복되는 질의문 작성에 효율적이다
- 독립성 : 스키마 변경에도 뷰 질의문은 변경할 필요가 없다
뷰 생성
- CREATE VIEW 명령문의 형식
CREATE VIEW 뷰_이름 [ (열_리스트) ]
AS SELECT_검색문
* 3학년 혹은 4학년 학생의 학생이름, 나이, 성, 학년으로 구성된 뷰를 'V1_고학년학생' 이라는 이름으로 생성하시오
~~~sql
create view v21_고학년학생(학생이름, 나이, 성, 학년)
as select 이름, 나이, 성별, 학년
from 학생21
where 학년>=3 and 학년<=4;
- 뷰의 생성 확인
select *
from V1_고학년학생;
- 각 과목별 과목번호, 강의실, 수강 인원수로 구성된 뷰를 'V2_과목수강현황' 이라는 이름으로 생성하시오
create view V2_과목수강현황(과목번호, 강의실, 수강인원수)
AS select 과목.과목번호, 강의실, COUNT(과목,과목번호)
from 과목 join 수강 on 과목.과목번호 = 수강.과목번호
group by 과목.과목번호;
select * from V2_과목수강현황;
- V1_고학년학생' 뷰를 기반으로 여학생만으로 구성된 뷰를 'V3_고학년학생' 이름으로 생성하시오
create view V3_고학년여학생
as select *
from V1_고학년학생
where 성 = '여'
select * from V3_고학년여학생
뷰를 통한 데이터 변경
- 뷰 검색은 제한 없이 가능한 반면 뷰 변경은 특정한 경우로 한정
- 뷰 변경이 제한되는 이유
뷰를 정의하는 SELECT_ 검색문 ’의 조건이 다양하기 때문
뷰가 참조하는 기반 테이블을 변경해야 하므로 내부 처리가 어려운 경우는 변경이 허용 되지 않음
뷰 삭제
- DROP VIEW 명령문의 형식
DROP VIEW 뷰_이름;
- DROP VIEW 적용 예
DROP VIEW V1_고학년학생;
ShOW TABLES;
'MySql' 카테고리의 다른 글
MYSQL - CREATE TABLE 문, ALTER 문, DROP 문, CREATE USER 명령문 (0) | 2022.10.13 |
---|---|
MYSQL - GRANT문, REVOKE문 , DROP USER문 (0) | 2022.10.13 |
MYSQL - UPDATE , DELETE 문 (0) | 2022.10.06 |
MYSQL - LIKE, UNION , 부 질의문, JOIN (0) | 2022.10.06 |
MYSQL - 데이터 조작문 (0) | 2022.09.29 |
댓글