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 ์ฒซ๊ฑธ์'
์ ์ฐธ๊ณ ํ์์ต๋๋ค.
'๐ ๋ฐ์ดํฐ๋ฒ ์ด์ค > ๊ฐ๋ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํธ๋์ญ์ ์ ๊ฒฉ๋ฆฌ ์์ค (Transaction Isolation Level) (1) | 2023.06.18 |
---|---|
ํธ๋์ญ์ (Transaction) (0) | 2023.06.17 |
[DB] ๋ฐ์ดํฐ๋ฒ ์ด์ค ํค(Key) ๊ฐ๋ & ํค(Key) ์ข ๋ฅ (0) | 2023.06.13 |
์๋ธ์ฟผ๋ฆฌ(Subquery) (0) | 2023.04.18 |
์กฐ์ธ(JOIN) (0) | 2023.04.18 |