본문 바로가기
3층 개발관/SQL

[SQL] VIEW란? (view 생성, 수정, 삭제)

by 개발관 2023. 1. 10.
반응형

1. View란 ? 

 

1) view란??

데이터베이스에 존재하는 가상의 테이블을 의미합니다.

실제로 행과 열이 존재하지만 데이터를 가지고 있는 것은 아닙니다.

다른 테이블이나 다른 뷰에 존재하는 데이터를 보여주는 역할만 수행 합니다.

 

2) view 테이블의 특징

- 실제 데이터를 저장하지 않고 다른 테이블에 있는 데이터를 보여주는 역할을 합니다.

- 뷰테이블이 바라보고 있는 테이블을 수정하면 뷰테이블도 같이 반영됩니다.

- 특정 사용자에게 테이블의 모든 데이터를 보여주는 게 아닌 필요한 데이터만 추출하여 보여줄 수 있습니다.

 

3) view테이블의 단점

- 한번 정의된 뷰는 수정이 불가능합니다.

- 뷰에 인덱스를 구성할 수 없습니다.

 

개인사용)

저는 view테이블을 써서 테이블 안의 데이터중 필요하지 않은 데이터를 제거한 테이블을 보여주기 위해 view를 씁니다.

 

2. View를 생성하는 방법

view를 생성하는 방법에는 두 가지 방법이 있습니다.

 

첫 번째, create view 명령으로 생성하는 방법

 

select * from 테이블명

테이블에 어떤 컬럼이 있는지 확인

컬럼 확인 후 view테이블을 생성하면서 컬럼은 user_id와 user_auth_code만 보고 싶다면

create view 뷰이름
select user_id, user_auth_code
from 바라볼 테이블 명

 

이렇게 한다면 user_id와 user_auth_code를 가진 view테이블이 생성되며 확인은 Database Navigator에서 확인가능합니다.

 

 

** 혹시나 view테이블이 확인이 안 된다면 Views에 마우스를 클릭한후 새로고침을 해봅시다.!! **

 

두 번째, create or replace view 명령으로 생성하는 방법

 

create or replace명령어는 해당 view이름을 가진 테이블이 없으면 만들고,  해당 이름을 가진 view테이블이 존재한다면 replace 덮어쓴다는 뜻입니다.

 

위 첫 번째와 동일하지만 or replace가 추가되니 참고하면 좋을 것 같습니다.

create or replace view 뷰이름
select *
from 바라보는 테이블 명

이렇게 쓰면 기존에 똑같은 이름의 view테이블이 있다면 덮어쓰거나, 없다면 새로 생성됩니다.

 

3. View를 수정하는 방법

view를 수정하는 방법 따로 없는 것으로 알고 있습니다.

but, create or replace view를 통하여 덮어쓰는 것은 가능합니다.

똑같은 view이름을 가진 테이블을 덮어써서 수정하는 방법이 있습니다.

 

create or replace view 뷰이름
select *
from 바라보는 테이블 명

 

4. View를 삭제하는 방법

 

View를 삭제하는 방법은 간단합니다.

drop view 뷰이름

코드가 실행되면서 view가 삭제됩니다.

하지만 view가 삭제된다고 해서 바라보고 있는 테이블이 삭제되는 것은 아니니 안심하고 삭제해도 괜찮습니다.

 

 


** 참고자료 **

 

https://seung.tistory.com/entry/MySQL-%EB%B7%B0View-%EC%82%AC%EC%9A%A9%EB%B2%95

https://butgrin.tistory.com/22

http://www.tcpschool.com/mysql/mysql_view_createReplace

 

반응형