๋ณต์กํ ์กฐ์ธ ์ฟผ๋ฆฌ ๋์ View๋ฅผ ์ฌ์ฉํ๋ ์ด์ ์ ์ค์ ์ ์ฉ๋ฒ
1. ๋ฌธ์ ์ํฉ
์ผ๋ฐ ํ ์ด๋ธ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ๋, ์ฌ๋ฌ ๊ฐ ํ ์ด๋ธ์ ์กฐ์ธํด์ ๋ณต์กํ SQL์ ์์ฑํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์
์ :
SELECT A.*, B.*, C.*
FROM A
JOIN B ON A.key = B.key
JOIN C ON B.key = C.key
WHERE A.status = 'Y';
์ด๋ฐ ์ฟผ๋ฆฌ๋ฅผ ๋งค๋ฒ ์์ฑํ๊ฒ ๋๋ฉด,
• ์ฟผ๋ฆฌ ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง
• ๊ด๋ฆฌ๊ฐ ์ด๋ ค์
• ์ฑ๋ฅ ์ต์ ํ๊ฐ ํ๋ค์ด์ง
• ์ฟผ๋ฆฌ ์์ ์ ๋ชจ๋ ์ฝ๋ ์์ ํ์
๊ฒฐ๊ตญ ๊ฐ๋ฐ/์ด์ ์์ฐ์ฑ์ด ํฌ๊ฒ ๋จ์ด์ง
2. ํด๊ฒฐ ๋ฐฉ๋ฒ: View ์์ฑ
๋ณต์กํ ์กฐ์ธ ์ฟผ๋ฆฌ๋ฅผ ํ๋์ View ํ ์ด๋ธ๋ก ๋ง๋ค์ด๋๊ณ , ํ์ํ ๋ View๋ฅผ ๋จ์ผ ํ ์ด๋ธ์ฒ๋ผ ์กฐํ
View ์์ฑ ์์
CREATE OR REPLACE VIEW VIEW_BOARD_COMBO AS
SELECT A.*, B.name, C.category
FROM BOARD_COMBO A
JOIN PRODUCT_SINGLE B ON A.product_id = B.id
JOIN CATEGORY C ON B.category_id = C.id;
์ด์ ๋ถํฐ๋
SELECT * FROM VIEW_BOARD_COMBO WHERE status = 'Y';
์ด๋ ๊ฒ ๋จ์ํ๊ฒ ์ฟผ๋ฆฌํ ์ ์์
3. View ์ฌ์ฉ์ ์ฅ์
๊ธฐ์กด ๋ฐฉ์ | View ์ฌ์ฉ ๋ฐฉ์ |
๋งค๋ฒ ๋ณต์กํ ์กฐ์ธ ์ฟผ๋ฆฌ ์์ฑ | ๋จ์ผ ํ ์ด๋ธ ์กฐํ์ฒ๋ผ ๊ฐ๋จํ๊ฒ ์์ฑ |
์ฟผ๋ฆฌ ๊ฐ๋ ์ฑ ๋ฎ์ | ์ฟผ๋ฆฌ ๊ฐ๋ ์ฑ ํฅ์ |
์์ ์ ๋ชจ๋ SQL ๋ณ๊ฒฝ ํ์ | View๋ง ์์ ํ๋ฉด ๋ |
์ค์ ์ํ ๋์ | ์ผ๊ด์ฑ ๋ณด์ฅ |
ํนํ, ํ ๊ฐ๋ฐ์ด๋ ์ ์ง๋ณด์ ๋จ๊ณ์์ ์์ฒญ๋ ์ฐจ์ด๋ฅผ ๋ง๋ฌ
4. ์ค์ ํฌ์ธํธ
• View๋ ๊ฐ์์ ํ ์ด๋ธ ์ค์ ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ์ง ์์
• View๋ฅผ ํตํด SQL์ ๊ฐ๋จํ๊ฒ, ์ผ๊ด์ฑ ์๊ฒ ์ ์งํ ์ ์์
• View ์์ ๋ง์ผ๋ก ์ฌ๋ฌ ์๋น์ค ์ฟผ๋ฆฌ๋ฅผ ํ ๋ฒ์ ๋ฐ์ํ ์ ์์
• ์ฃผ์ : View ๋ด๋ถ ์ฟผ๋ฆฌ ์ฑ๋ฅ๋ ์ ๊ฒฝ ์จ์ผ ํจ (๋ถํ์ํ ์ปฌ๋ผ ์กฐํ ์ต์ํ)
5. ๊ฒฐ๋ก
์กฐ์ธ์ด ๋ณต์กํด์ง์๋ก ์ฟผ๋ฆฌ๋ ์ ์ง๋ณด์ ์ง์ฅ
View๋ฅผ ์์ฑํด์ ์กฐ์ธ ๋ก์ง์ ๋จ์ผํํ๋ฉด
• ๊ฐ๋ฐ ์์ฐ์ฑ ํฅ์
• ์ฝ๋ ๊ฐ๋ ์ฑ ํฅ์
• ์ด์ ์์ ์ฑ ํ๋ณด
๋ณต์กํ ์กฐ์ธ์ View๋ก ๊ด๋ฆฌ
๊ฐ๋ฐ์ด ํ๊ฒฐ ์ฌ์์ง