-- view 생성
CREATE or replace VIEW v_menu -- or replace를 통해 덮어씌울 수 있다.
AS
SELECT
menu_name '메뉴이름'
, menu_price '메뉴가격'
FROM tbl_menu;
SELECT * FROM v_menu;
-- view는 원본테이블을 참조해서 보여주는 용도이고 실제 보여지는건 원본 테이블의 데이터이다.
-- 원본인 tbl_menu의 11번 메뉴 가격을 10원으로 수정해보자
UPDATE tbl_menu
SET menu_price = 10
WHERE menu_code = 11;
-- v_menu(뷰)로 확인해 보자.
SELECT * FROM v_menu;
SELECT 메뉴이름 FROM v_menu; -- 뷰 생성시 별칭으로 생성헀다면 뷰틀 통한 조회는 별칭으로만 가능
결과
SELECT * FROM v_menu;
SELECT 메뉴이름 FROM v_menu;
별칭을 붙일 경우 컬럼의 기본 이름으로 조회할 경우 오류가 나오는데
이는 CREATE를 하면서 별칭을 붙인 상태로 캡처가 되었다고 생각하면 됨.
원본 테이블에 있는 데이터를 수정했더니 v_menu에서 확인했을 때도 수정한 데이터를 확인할 수 있었다.
-- INSERT INTO hansik VALUES (null, '식혜맛국밥', 5500, 4, 'Y'); -- 에러 발생
INSERT
INTO hansik
VALUES (99, '수정과맛국밥', 5500, 4, 'Y');
SELECT * FROM hansik;
SELECT * FROM tbl_menu;
UPDATE hansik
SET menu_name = '버터맛국밥', menu_price = 5700
WHERE menu_code = 99;
SELECT * FROM hansik;
SELECT * FROM tbl_menu;
DELETE FROM hansik WHERE menu_code = 99;
SELECT * FROM hansik;
SELECT * FROM tbl_menu;
DROP VIEW hansik;
테이블을 DROP하지 않고 기존의 VIEW를 새로운 VIEW로 쉽게 다룰 수 있다.
-- view 생성
CREATE or replace VIEW v_menu -- or replace를 통해 덮어씌울 수 있다.
AS
SELECT
menu_name '메뉴이름'
, menu_price '메뉴가격'
FROM tbl_menu;
SELECT * FROM v_menu;