-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path16_view.sql
More file actions
62 lines (51 loc) · 1.46 KB
/
Copy path16_view.sql
File metadata and controls
62 lines (51 loc) · 1.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
-- VIEW
SELECT
menu_name
, menu_price
FROM tbl_menu;
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; -- 뷰 생성시 별칭으로 생성했다면
-- 뷰를 통한 조회는 별칭으로만 가능하다.
-- -----------------------
-- VIEW를 통한 DML(절대 비추!)
SELECT * FROM tbl_menu;
-- VIEW 생성
CREATE VIEW hansik AS
SELECT
menu_code
, menu_name
, menu_price
, category_code
, orderable_status
FROM tbl_menu
WHERE category_code = 4;
-- 생성된 VIEW 조회
SELECT * FROM hansik;
-- 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;