본문 바로가기
MySQL

MySQL 뷰

by FraisGout 2020. 7. 3.

VIEW 생성 및 대체

(view)?

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

 

이러한 뷰는 실제 테이블처럼 행과 열을 가지고 있지만, 실제로 데이터를 저장하고 있지는 않습니다.

 

 

 

MySQL에서 뷰(view)는 다른 테이블이나 다른 뷰에 저장되어 있는 데이터를 보여주는 역할만을 수행합니다.

 

, 뷰를 사용하면 여러 테이블이나 뷰를 하나의 테이블처럼 볼 수 있습니다.

 

뷰의 특징

MySQL에서 뷰가 가지는 장점은 다음과 같습니다.

 

 

 

1. 특정 사용자에게 테이블 전체가 아닌 필요한 필드만을 보여줄 수 있습니다.

 

2. 복잡한 쿼리를 단순화해서 사용할 수 있습니다.

 

3. 쿼리를 재사용할 수 있습니다.

 

 

 

하지만 이러한 뷰도 다음과 같은 단점을 가지고 있습니다.

 

 

 

1. 한 번 정의된 뷰는 변경할 수 없습니다.

 

2. 삽입, 삭제, 갱신 작업에 많은 제한 사항을 가집니다.

 

3. 자신만의 인덱스를 가질 수 없습니다.

 

뷰 생성

CREATE 문을 사용하여 뷰를 생성할 수 있습니다.

 

 

 

MySQL에서 뷰를 생성하는 문법은 다음과 같습니다.

 

문법

CREATE VIEW 뷰이름 AS

 

SELECT 필드이름1, 필드이름2, ...

 

FROM 테이블이름

 

WHERE 조건

 

 

 

뷰의 이름을 명시하고, AS 키워드 다음에 SELECT 문을 사용하여 해당 뷰가 접근할 수 있는 필드를 명시합니다.

 

이때 WHERE 절을 사용하여 특정 조건을 설정할 수도 있습니다.

 

이렇게 CREATE VIEW 문은 SELECT 문에서 선택된 필드를 가지는 새로운 뷰를 생성합니다.

뷰는 원본 테이블과 같은 이름을 가질 수 없습니다.

 

다음 예제는 Reservation 테이블에서 Name, ReserveDate, Dday 필드를 가지는 MyView라는 이름의 뷰를 생성하는 예제입니다.

 

예제

CREATE VIEW MyView AS

 

SELECT Name, ReserveDate, ReserveDate - Curdate() AS Dday

 

FROM Reservation;

 

위의 예제에서 생성된 MyViewDday 필드는 ReserveDate 필드 값과 현재 날짜와의 차이를 계산하여 생성됩니다.

 

따라서 여러분이 실행한 결과에서 Dday 필드의 값은 위의 실행 결과와는 약간 다를 것입니다.

 

 

 

이때 사용되는 Curdate() 함수는 현재 날짜를 받아오는 함수입니다.

뷰는 테이블과 마찬가지로 SELECT 문을 사용하여 저장하고 있는 데이터를 확인할 수 있습니다.

 

뷰 대체

CREATE 문에 OR REPLACE 절을 추가하여 기존에 존재하는 뷰를 새로운 뷰로 대체할 수 있습니다.

 

 

 

MySQL에서 뷰를 대체하는 문법은 다음과 같습니다.

 

문법

CREATE OR REPLACE VIEW 뷰이름 AS

 

SELECT 필드이름1, 필드이름2, ...

 

FROM 테이블이름

 

WHERE 조건

 

 

 

CREATE OR REPLACE VIEW 문은 OR REPLACE 절이 추가된 것을 제외하면, 뷰를 생성하는 문법과 완전히 같습니다.

 

이때 해당 뷰가 존재하지 않으면 CREATE VIEW 문과 같은 결과를 반환합니다.

 

 

 

다음 예제는 앞선 예제에서 생성한 MyView에서 ReserveDate 필드를 RoomNum 필드로 대체하는 예제입니다.

 

예제

CREATE OR REPLACE VIEW MyView AS

 

SELECT Name, RoomNum, Date - Curdate() AS Dday

 

FROM Reservation;

 

뷰 수정

CREATE 문을 사용하여 생성된 뷰는 ALTER 문을 사용하여 수정할 수 있습니다.

 

 

 

MySQL에서 뷰를 수정하는 문법은 다음과 같습니다.

 

문법

ALTER VIEW 뷰이름 AS

 

SELECT 필드이름1, 필드이름2, ...

 

FROM 테이블이름

 

 

 

MySQL에서 뷰를 수정하는 문법은 뷰를 생성하는 문법과 거의 같습니다.

 

 

 

다음 예제는 생성된 MyView라는 이름의 뷰를 IDName 필드만 가지도록 수정하는 예제입니다.

 

예제

ALTER VIEW MyView AS

 

SELECT ID, Name

 

FROM Reservation;

 

뷰 삭제

DROP 문을 사용하여 생성된 뷰를 삭제할 수 있습니다.

 

 

 

MySQL에서 뷰를 삭제하는 문법은 다음과 같습니다.

 

문법

DROP VIEW 뷰이름

 

 

 

다음 예제는 생성된 MyView라는 이름의 뷰를 삭제하는 예제입니다.

 

예제

 

 

DROP VIEW MyView;

 

 

'MySQL' 카테고리의 다른 글

MySQL & PHP  (0) 2020.07.03
MySQL 내장함수  (0) 2020.07.03
MySQL 인덱스  (0) 2020.07.02
MySQL 연산  (0) 2020.07.02
MySQL 제약조건  (0) 2020.07.02

댓글