https://kkamikoon.tistory.com/entry/MySQL-%EB%B7%B0-%EC%83%9D%EC%84%B1%ED%95%98%EA%B8%B0VIEW-%EC%83%9D%EC%84%B1%ED%95%98%EA%B8%B0
|
뷰(View)란? |
뷰(View)란 데이터베이스에 존재하는 일종의 가상 테이블을 말합니다.
이러한 뷰를 이용하여 실제 테이블처럼 행과 열을 가지고 있지만, 실제로 데이터를 저장하고 있지는 않습니다.
즉, 우리가 여러 테이블을 번거롭게 들러서 확인을 해야 할 때 혹은 SELECT 문을 겹겹이 사용해서 어려운 쿼리문으로 조회를 수행해야 할 때 이러한 번거로움을 줄여주는 것이 바로 뷰(View) 입니다.
단, 유의해야 할 점은 MySQL에서 뷰는 단지 다른 테이블이나 다른 뷰에 있는 데이터를 보여주는 역할만을 수행합니다. 이름이 그래서 뷰(View)인가 봅니다. 뷰는 마치 하나의 테이블인 것처럼 보여준다는 장점이 있습니다.
|
뷰의 특징 |
|
뷰의 장점 |
MySQL에서의 뷰의 장점은 다음과 같습니다.
1. 특정 사용자에게 테이블 전체가 아닌 필요한 필드만 보여줄 수 있음
2. 복잡한 쿼리를 단순화해서 사용할 수 있음
3. 위와 같이 사용한 쿼리를 재사용할 수 있음
|
뷰의 단점 |
단, 편리하지만 단점 또한 있습니다.
1. 한 번 정의된 뷰는 변경이 불가능함
2. 삽입, 삭제, 갱신 작업에 많은 제한 사항을 가짐
3. 뷰는 자신만의 인덱스를 가질 수 없음
위와 같은 특징을 유의하여 뷰를 생성하고 사용해보도록 합시다.
|
뷰 생성 예제 |
VIEW는 마치 테이블을 만들듯 생성할 수 있습니다. 따라서 CREATE 문을 사용하여 생성해보도록 합시다.
MySQL에서 VIEW를 생성하는 예제는 다음과 같습니다.
|
단일 테이블의 필요한 필드만 조회하는 뷰 명령어 |
1 2 3 4 5 |
-- VIEW 생성 명령어 CREATE VIEW [view_name] AS \ SELECT [field_name_1], [field_name_2] ... \ FROM [table_name] \ WHERE [조건]; |
위의 명령에서는 하나의 테이블에서 필요한 필드의 내용만 가져오기 위한 명령어를 작성해보았습니다.
이는 테이블이 하나밖에 없기 때문입니다.
|
여러 테이블의 필요한 필드를 조회하는 뷰 명령어 |
만약 여러분이 여러 테이블의 내용을 섞어서 보고싶다면 다음과 같은 방법을 사용해보도록 합시다.
1 2 3 4 5 |
-- 여러 테이블을 조회하는 VIEW 생성 명령어 CREATE VIEW [view_name] AS \ SELECT a.[field_name_1], b.[field_name_2] \ FROM [table_name_1] AS a, [table_name_2] AS b \ WHERE [조건]; |
위의 명령어는 table_name_1과 table_name_2의 두 테이블에서 각각 field_name_1과 field_name_2를 가져오는 명령어입니다.
field_name_1은 table_name_1에 있는 필드이고, field_name_2는 마찬가지로 table_name_2에 있는 필드입니다.
여기서 [조건]에 적절한 조건을 넣어줘야 합니다.
예를들면..
- table_name_1의 어떤 필드와 table_name_2의 어떤 필드의 값이 같은 것을 조회한다.
- table_name_1의 어떤 필드의 특정 값을 조회한다.
등이 있겠습니다.
실행 결과는 다음과 같이 나타나게 됩니다.
Field_name_1 |
Field_name_2 |
table_name_1에 있는 field_name_1의 값 |
table_name_2에 있는 field_name_2의 값 |
... |
... |
|
뷰 대체 예제 |
뷰 대체란 기존에 생성했던 뷰를 다시 새로운 뷰로 대체한다는 뜻입니다.
뷰는 한 번 생성하면 변경이 불가능하기 때문에 새로운 뷰로 대체하는 것으로 뷰에 설정한 필드를 대체할 수 있습니다.
|
뷰 대체 명령어 |
1 2 3 4 5 |
-- 뷰 대체 명령어 -- 기존의 view_name 이라는 VIEW를 새로운 필드로 설정해줄 수 있음 CREATE OR REPLACE VIEW [view_name] AS \ SELECT [field_name_1], [field_name_2] AS [new_field_name] \ FROM [table_name]; |
만약 위와 같이 뷰를 대체하게 되면, [field_name_2]라는 이름을 가진 필드가 [new_field_name]이라는 이름으로 대체됩니다.
|
뷰 사용 예제 |
생성한 뷰는 일반적인 SELECT 명령어로 사용할 수 있습니다.
1 2 |
-- 생성된 뷰 조회(뷰 이름 : view_name) SELECT * FROM view_name; |
위와 같이 생성된 뷰를 전체 조회하게 되면 원하는 테이블의 원하는 필드 값만 볼 수 있습니다.
Designed by sketchbooks.co.kr / sketchbook5 board skin
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5