Amenable 2023. 4. 17. 22:41

1. ๊ฐœ๋… ๐Ÿฃ

  ๋ทฐ(View)๋Š” ํ…Œ์ด๋ธ”์ฒ˜๋Ÿผ ์ทจ๊ธ‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ '์‹ค์ฒด๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค'๋ผ๋Š” ์˜๋ฏธ๋กœ '๊ฐ€์ƒ์˜ ํ…Œ์ด๋ธ”'์ด๋ผ๊ณ  ๋ถˆ๋ฆฐ๋‹ค.

  ์‹ค์ œ ํ…Œ์ด๋ธ”์ฒ˜๋Ÿผ ํ–‰๊ณผ ์—ด์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ, ์‹ค์ œ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์žˆ์ง€๋Š” ์•Š๋Š”๋‹ค. ์ถ”๊ฐ€์ ์ธ ์„ค๋ช…์„ ์œ„ํ•ด ๋ทฐ์˜ ์ƒ์„ฑ ๋ฐฉ๋ฒ•์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋จผ์ € ์‚ดํŽด๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

CREATE VIEW ๋ทฐ์ด๋ฆ„
AS
SELECT ~~~

  ๋ณธ๋ž˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด๋กœ ๋“ฑ๋กํ•  ์ˆ˜ ์—†๋Š” SELECT ๋ช…๋ น์„ ๊ฐ์ฒด๋กœ์„œ ์ด๋ฆ„์„ ๋ถ™์—ฌ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ ๊ฒƒ์ด ๋ทฐ์ด๋‹ค. ๋”ฐ๋ผ์„œ ๋ทฐ๋ฅผ ์ฐธ์กฐํ•˜๋ฉด(ํ˜ธ์ถœํ•˜๋ฉด) ๋ทฐ์— ์ •์˜๋œ SELECT ๋ช…๋ น์ด ์‹คํ–‰๋˜๊ณ  ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ํ…Œ์ด๋ธ”์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

  ๊ทธ๋ž˜์„œ View์™€ Table์˜ ์ฐจ์ด์ ์ด๋ผ๊ณ  ํ•œ๋‹ค๋ฉด, View๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๊ณ  SQL๋งŒ ์žˆ๋Š” ๊ฒƒ์ด๊ณ , Table์€ ์‹ค์งˆ์ ์ธ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

 

2. ์ข…๋ฅ˜ ๐Ÿค

1. ๋‹จ์ˆœ ๋ทฐ(Simple View)

CREATE VIEW ๋ทฐ์ด๋ฆ„
AS
SELECT ํ•„๋“œ์ด๋ฆ„1, ํ•„๋“œ์ด๋ฆ„2, ...
FROM ํ…Œ์ด๋ธ”์ด๋ฆ„
  • ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์—์„œ ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ๋ฝ‘์•„์˜จ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.
  • ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”๋กœ ์ƒ์„ฑ๋œ๋‹ค.

2. ๋ณตํ•ฉ ๋ทฐ(Complex View)

CREATE VIEW ๋ทฐ์ด๋ฆ„
AS
SELECT a.a1, b.b1
FROM a_table a INNER JOIN b_table b
ON a.a3 = b.b3
  • ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”์ด Join ๋˜์–ด ๋งŒ๋“  ๋ทฐ
  • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ…Œ์ด๋ธ”๋กœ ์ƒ์„ฑ๋œ๋‹ค.

3. ์ธ๋ผ์ธ ๋ทฐ(Inline View)

SELECT a.a1, b.b2
FROM a_table a, (SELECT b1, b2
	FROM b_table) b
WHERE a.a1 = b.b1
  • FROM ์ ˆ ์•ˆ์— SQL ๋ฌธ์žฅ์ด ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ
  • ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ์ธ๋‹ค.

 

3. ์‚ฌ์šฉ๋ฒ• ๐Ÿฅ

1. ์ƒ์„ฑ

CREATE VIEW ๋ทฐ์ด๋ฆ„
AS
SELECT ํ•„๋“œ์ด๋ฆ„1, ํ•„๋“œ์ด๋ฆ„2, ...
FROM ํ…Œ์ด๋ธ”์ด๋ฆ„
WHERE ์กฐ๊ฑด

  ๋ทฐ๋Š” ์›๋ณธ ํ…Œ์ด๋ธ”์˜ ์ด๋ฆ„๊ณผ ๊ฐ™์€ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.

2. ๋Œ€์ฒด

CREATE OR REPLACE VIEW ๋ทฐ์ด๋ฆ„
AS
SELECT ํ•„๋“œ์ด๋ฆ„1, ํ•„๋“œ์ด๋ฆ„2, ...
FROM ํ…Œ์ด๋ธ”์ด๋ฆ„
WHERE ์กฐ๊ฑด

  ๋ทฐ ์ด๋ฆ„์— ํ•ด๋‹นํ•˜๋Š” View๊ฐ€ ์กด์žฌํ•˜๋ฉด ๋Œ€์ฒดํ•˜๊ณ , ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์ƒ์„ฑํ•œ๋‹ค.

3. ์ˆ˜์ •

ALTER VIEW ๋ทฐ์ด๋ฆ„
AS
SELECT ํ•„๋“œ์ด๋ฆ„1, ํ•„๋“œ์ด๋ฆ„2, ...
FROM ํ…Œ์ด๋ธ”์ด๋ฆ„

4. ์‚ญ์ œ

DROP VIEW ๋ทฐ์ด๋ฆ„

 

4. ์žฅ์  & ๋‹จ์  ๐Ÿ“

1. ์žฅ์ 

  • ํŠน์ • ์‚ฌ์šฉ์ž์—๊ฒŒ ํ…Œ์ด๋ธ” ์ „์ฒด๊ฐ€ ์•„๋‹Œ ํ•„์š”ํ•œ ํ•„๋“œ๋งŒ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋‹ค.
  • ๋ณต์žกํ•œ ์ฟผ๋ฆฌ๋ฅผ ๋‹จ์ˆœํ™”ํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ฟผ๋ฆฌ๋ฅผ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

2. ๋‹จ์ 

  • ํ•œ ๋ฒˆ ์ •์˜๋œ ๋ทฐ๋Š” ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค.
  • ์‚ฝ์ž…, ์‚ญ์ œ, ๊ฐฑ์‹  ์ž‘์—…์— ๋งŽ์€ ์ œํ•œ ์‚ฌํ•ญ์ด ์žˆ๋‹ค.
  • ์ž์‹ ๋งŒ์˜ ์ธ๋ฑ์Šค๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์—†๋‹ค.

 

ํ•ด๋‹น ๊ธ€์€
Inpa ๋‹˜์˜ '[MYSQL] ๋ทฐ(view) ์‚ฌ์šฉ๋ฒ• ์ •๋ฆฌ',
cailisin ๋‹˜์˜ '๋ทฐ(View)๋ž€ ๋ฌด์—‡์ธ๊ฐ€~??',
์•„์‚ฌ์ด ์•„์ธ ์‹œ ๋‹˜์˜ 'SQL ์ฒซ๊ฑธ์Œ'
์„ ์ฐธ๊ณ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
๋Œ“๊ธ€์ˆ˜0