VIEW는 SELECT문의 결과를 담고 있는 가상의 테이블 입니다.
특정 데이터를 계속 활용해야할 때 뷰 테이블로 만들어 놓으면 다른데서 활용할 수 있습니다.
-- 사용법
CREATE [OR REPLACE] VIEW 뷰이름 AS
SELECT select 구문;
-- 사용예시
CREATE VIEW VW_ORDER_INFO_SELECT
AS
SELECT
MB.memberId, MB.name
, OI.orderNo, OI.orderDate
, OD.orderedCnt, OD.amount
, GI.goodsCode, GI.goodsName, GI.state
FROM tbl_orderinfo AS OI
INNER JOIN tbl_orderdetail AS OD ON OD.orderNo = OI.orderNo
INNER JOIN tbl_goodsinfo AS GI ON GI.goodsCode = OD.goodsCode
INNER JOIN tbl_member AS MB ON MB.memberId = OI.memberId
;
VIEW_대문자영문명
, v_테이블명
, VW_테이블명
이런식으로 작성 합니다.VIEW를 조회하고 삭제하는 방법은 일반 테이블과 동일합니다.
-- 사용법
# 스키마 조회
DESC 뷰테이블명;
# SELECT 조회
SELECT 컬럼1, 컬럼2,,,
FROM 뷰테이블명
WHERE 조건절
GROUP BY 컬럼,,,
HAVING 조건절
ORDER BY 컬럼 [정렬조건],,,
LIMIT [시작인덱스, ] 개수;
-- 사용예시
# 스키마 조회
DESC vw_order_info_select;
# SELECT 조회
SELECT * FROM vw_order_info_select;
-- 사용법
DROP 뷰테이블명;
-- 사용예시
DROP vw_order_info_select;
VIEW에 INSERT / UPDATE / DELETE 경우는 해당 뷰를 만들 때 작성한 기본 테이블에 추가/수정/삭제하는 것이기 때문에
-- 조회 쿼리
SELECT TABLE_NAME, IS_UPDATABLE
FROM information_schema.VIEWS
WHERE TABLE_SCHEMA = '데이터베이스명'
;
위 3가지 경우에는 INSERT/UPDATE/DELETE가 불가합니다.
INSERT를 사용하는 방식은 일반테이블과 동일합니다.
다만, VIEW테이블에서 INSERT해도 원본테이블 자체에 데이터가 INSERT되어 VIEW에 반영되는 방식이라는 점을 명심해야합니다.
-- 사용법
INSERT INTO 뷰테이블명 (컬럼1, 컬럼2,,,)
VALUES (값1, 값2,,,)
# 해당 뷰테이블 모든 컬럼에 대해 값입력 시 뷰테이블명 우측 괄호 생략가능
-- 사용예시
INSERT INTO VW_tbl_member(memberId, NAME, pwd, regDate)
VALUES('test2', '테스트회원2', '1234', NOW());
UPDATE를 사용하는 방식은 일반테이블과 동일합니다.
다만, VIEW테이블에서 UPDATE해도 원본테이블 자체에 데이터가 UPDATE되어 VIEW에 반영되는 방식이라는 점을 명심해야합니다.
-- 사용법
UPDEATE 뷰테이블명
SET 컬럼1 = 값1, 컬럼2 = 값2,,,
WHERE 조건절;
-- 사용예시
UPDATE VW_tbl_member
SET jumin = '345678-1234567', addr1 = '서울 금천구 독산1동'
, birthday = '2000-12-25', jobCode = '06', mileage = 3000
, memberState = 'Y', regDate = NOW()
WHERE memberId = 'memberId';
DELETE를 사용하는 방식은 일반테이블과 동일합니다.
다만, VIEW테이블에서 DELETE해도 원본테이블 자체에 데이터가 DELETE되어 VIEW에 반영되는 방식이라는 점을 명심해야합니다.
-- 사용법
DELETE FROM 뷰테이블명
WHERE 조건절;
-- 사용예시
DELETE FROM VW_tbl_member
WHERE memberId = 'test2';
MariaDB로 따라 하며 배우는 SQL프로그래밍 데이터베이스 기초에서 실무까지 - 나익수, 서연경 지음
위 책을 공부하며 작성하고 있습니다!