VIEW

table ๋Œ€์‹  view ์“ฐ๋Š” ์ด์œ 

๊ฐ„ํ˜น create table ๋ง๊ณ  create view ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ…Œ์ด๋ธ”์ด๋ž‘ ๋˜‘๊ฐ™์€ view ๋ผ๋Š” ์นœ๊ตฌ๊ฐ€ ์žˆ๋Š”๋ฐ ๋ญ”์ง€ ์•Œ์•„๋ด…์‹œ๋‹ค.

VIEW๋ž€?

SELECT ๋กœ ์ฐพ์€ ํ–‰๋“ค์ด ๋„ˆ๋ฌด๋‚˜ ๋งˆ์Œ์— ๋“ค์–ด์„œ

ํ…Œ์ด๋ธ”๋กœ ๋‘๊ณ ๋‘๊ณ  ์ €์žฅํ•ด์„œ ์“ฐ๊ณ  ์‹ถ์Šต๋‹ˆ๊นŒ?

๊ทธ๋Ÿผ ์‹ค์ œ ํ…Œ์ด๋ธ”๋กœ ์ €์žฅํ•ด๋„ ๋˜๊ฒ ์ง€๋งŒ ๋” ๊ฐ„๋‹จํ•˜๊ฒŒ view๋กœ ๋งŒ๋“ค์–ด๋‘˜ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

view๋Š” ๊ฐ€์ƒ์˜ ํ…Œ์ด๋ธ”์ž…๋‹ˆ๋‹ค. ํ…Œ์ด๋ธ”์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

CREATE VIEW ๋ทฐ์ด๋ฆ„ AS
SELECT ์ปฌ๋Ÿผ1, ์ปฌ๋Ÿผ2, ...
FROM ํ…Œ์ด๋ธ”๋ช… 

view ๋งŒ๋“œ๋Š” ๋ฌธ๋ฒ•์€ ์ด๋ ‡์Šต๋‹ˆ๋‹ค.

SELECT๋กœ ์ฐพ์€ ํ–‰๋“ค์„ view๋กœ ๋งŒ๋“ค์–ด๋‹ฌ๋ผ๋Š” ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

โœจ ์‹ค์Šต. ๊ธฐ์กด์— ์‚ฌ์šฉํ•˜๋˜ ํ…Œ์ด๋ธ” ์ค‘ ์•„๋ฌด๊ฑฐ๋‚˜ JOIN ํ•ด์„œ VIEW๋ฅผ ๋งŒ๋“ค์–ด ๋ด…์‹œ๋‹ค.

SELECT *
FROM SALES s  INNER JOIN ITEM i  
ON s.id = i.id;

- OR REPLACE : ํ•ด๋‹น ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ทฐ๋ฅผ ์ˆ˜์ •ํ•  ๋•Œ DROP ์—†์ด ์ˆ˜์ •์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

- FORCE : ๋ทฐ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์ฟผ๋ฆฌ๋ฌธ์˜ ํ…Œ์ด๋ธ”, ์ปฌ๋Ÿผ, ํ•จ์ˆ˜ ๋“ฑ์ด ์กด์žฌํ•˜์ง€ ์•Š์•„๋„ ์ƒ์„ฑ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

- NORORCE : ๋ทฐ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์ฟผ๋ฆฌ๋ฌธ์˜ ํ…Œ์ด๋ธ”, ์ปฌ๋Ÿผ ํ•จ์ˆ˜ ๋“ฑ์ด ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด ์ƒ์„ฑ๋˜์ง€ ์•Š๋Š”๋‹ค.

- column_aliases : SELECT ์ปฌ๋Ÿผ์˜ ๋ณ„์นญ์„ ๋ฏธ๋ฆฌ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

- WITH READ ONLY : SELECT ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค. (INSERT, UPDATE, DELETE ๋ถˆ๊ฐ€๋Šฅ)

- WITH CHECK OPTION : WHERE ์ ˆ์˜ ์กฐ๊ฑด์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ๋งŒ ์ €์žฅ, ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

view ์“ฐ๋Š” ์ด์œ 

๋ญ๋“  ๋‚˜์ค‘์— ์จ๋จน์œผ๋ ค๊ณ  ๋ฐฐ์šฐ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์šฉ๋„๋ฅผ ์ž˜ ์ƒ๊ฐํ•ด๋ด…์‹œ๋‹ค.

1. ๋ณต์žกํ•˜๊ฒŒ JOIN ํ•ด๋†“์€ ํ…Œ์ด๋ธ”๋“ค์„ ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ” ๋˜๋Š” view๋กœ ๋งŒ๋“ค์–ด๋‘๋ฉด ๋‘๊ณ ๋‘๊ณ  ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์„œ ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

2. ๊ทผ๋ฐ view๋Š” ์‹ค์ œ ํ…Œ์ด๋ธ”์ด ์•„๋‹ˆ๋ผ์„œ ํ…Œ์ด๋ธ”๋งŒํผ ํ•˜๋“œ์šฉ๋Ÿ‰์„ ๋งŽ์ด ์ฐจ์ง€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

3. table์— ์ปฌ๋Ÿผ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•  ๋•Œ view๋ฅผ ๋งŒ๋“ค์–ด์„œ ๋จผ์ € ์‹คํ—˜ํ•ด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4. view ์•ˆ์—์„œ ๋˜ SELECT ํ•ด์„œ view๋ฅผ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋„ˆ๋ฌด ๋งŽ์€ ์ค‘์ฒฉ์€ ๊ธˆ์ง€

์—ด์‹ฌํ•ด JOINํ•ด์„œ ์ž‘์„ฑํ•ด๋†จ๋˜ SELECT ๋ฌธ์„ ์‰ฝ๊ฒŒ ํ…Œ์ด๋ธ”ํ˜•ํƒœ๋กœ ์žฌ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์„ ๋•Œ view๋ฅผ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋ณด์•ˆ์ƒ์˜ ์ด์œ ๋กœ๋„ VIEW๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์‚ฌ์›์ •๋ณด ํ…Œ์ด๋ธ”์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ–ˆ์„ ๋•Œ

์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ๋‚˜ ๊ธ‰์—ฌ์™€ ๊ฐ™์ด ๋ฏผ๊ฐํ•œ ๊ฐœ์ธ์ •๋ณด๋ฅผ ๋ชจ๋“  ๊ฐœ๋ฐœ์ž๊ฐ€ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธธ๊ฒƒ ๊ฐ™์ง€ ์•Š๋‚˜์š”? ๊ทธ๋ž˜์„œ VIEW๋กœ ์‚ฌ์›์ •๋ณด์˜ ํ•„์š”ํ•œ ์ผ๋ถ€ ์ปฌ๋Ÿผ๋งŒ ์‚ฌ์šฉํ•˜๋„๋ก ํ•˜๊ณ  VIEW์˜ ์กฐํšŒ๊ถŒํ•œ์„ ์ฃผ๊ณ  ์‚ฌ์›์ •๋ณด ํ…Œ์ด๋ธ”์€ ์กฐํšŒ๊ถŒํ•œ์„ ์ฃผ์ง€ ์•Š๋Š” ํ˜•์‹์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

(์ฐธ๊ณ )

view๋Š” ๊ฐ€์ƒํ…Œ์ด๋ธ”์ด๋ผ๊ณ  ํ–ˆ์ง€๋งŒ ์‹ค์ œ๋กœ ํ…Œ์ด๋ธ”์ด ์ƒ์„ฑ๋˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ

SELECT ๋ฌธ๋ฒ•์„ ํ…Œ์ด๋ธ”ํ˜•ํƒœ๋กœ ๋ˆˆ์†์ž„ํ•ด์ฃผ๋Š” ๊ฒƒ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค.

Last updated