DBMS(MySQL)_뷰(view)
사용 테이블
뷰(view)
- 가상의 테이블을 생성
- 실제 테이블처럼 행과 열을 가지고 있지만, 데이터를 직접 저장하고 있지는 않음
※뷰를 만드는 이유
- SQL 코드를 간결하게 만들기 위함
- 삽입, 삭제, 수정 작업에 제한 사항을 가짐
- 내부 데이터를 전체 공개하고 싶지 않을 때
1.생성하기
●문법
create view 뷰이름 as 쿼리 .....
예시
create view vw_member as select userid, username, hp, gender from member;
문제
member 의 userid, username, hp 와 profile의 mbti를 출력하는 view 를 만들고 select 할 수 있는 melon 계정을 생성
풀이
create view vw_memberprofile as select m.userid, m.username, m.hp, p.mbti
from member as m inner join profile as p on m.userid = p.userid;
select 뒤에 하나의 쿼리를 만들어 view를 생성해 주었다.
2.수정하기
뷰 수정하기
alter view 뷰이름 as 쿼리 .....(거의 다시만들기와 동일하다.)
뷰 대체하기
create or replace view 뷰이름 as 쿼리
CREATE OR REPLACE VIEW 명령어는 뷰(view)를 생성해 주는 명령어이다.
CREATE OR REPLACE VIEW는 이미 같은 이름의 뷰를 생성할 경우 존재하고 있는 뷰를 갱신(덮어쓰기)하기도 한다.
3.삭제하기
뷰 삭제하기
drow view 뷰이름
뷰는 말그대로 기존 테이블에서 보기 쉽게 테이블을 가상으로 만들어 주는것이다. 그러나 원래의 테이블과 정보를 공유하고 있는것이기 때문에 다음과 같은 구문은 오류가 날 수 있다.
insert into vw_member values ('avocado','안가도','010-8888-8888','남자');
이유는 vw_member에는 보이지 않지만 끌어온 테이블 member에서는 values 순서가 member로 진행되기 때문에그 순서에서 not null이라는 제약조건이 설정되어 오류가 발생한다.