๋ณธ ํฌ์คํ ์ ํ๋ก๊ทธ๋๋จธ์ค ๋ฏธ๋ ๋ฐ๋ธ ์ฝ์ค๋ฅผ ๊ณต๋ถํ๋ฉฐ
ํ์ต์ ๊ธฐ๋กํ๊ธฐ ์ํ ๋ชฉ์ ์ผ๋ก ์์ฑ๋ ๊ธ์ ๋๋ค.
์์ฃผ selectํ๋ ์ฟผ๋ฆฌ๊ฐ ์์ ๋, ํด๋น select์ฟผ๋ฆฌ
๋ก ๋ง๋ค์ด์ง
๊ฐ์ ํ
์ด๋ธ
์ ์ด๋ฆ์ ์ฃผ๊ณ ๊ทธ๊ฒ์ ์ฌ์ฉํ์ฌ ์ง์ํ๋ ๊ฒ์ด๋ค.
๊ฐ์ ํ
์ด๋ธ
์ ์ด๋ฆ์ ์ฃผ๋ฉด ๊ทธ๊ฒ์ด View
๋ก์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋จ์ ์ ์ฅ๋๋ค.
์ฃผ์ํด์ผํ ์ ์ View
๋ ํ
์ด๋ธ
๋ก์ ์ ์ฅ๋๋ ๊ฒ์ด ์๋๋ผ๋ ๊ฒ์ด๋ค.
view
๋ select์ฟผ๋ฆฌ
๊ฐ view๋ผ๋ ์ด๋ฆ์ผ๋ก ์ ์ฅ๋๋ ๊ฒ์ด๋ค.
๋ฐ๋ผ์ view๊ฐ ์ฌ์ฉ๋ ๋๋ง๋ค select
๊ฐ ์คํ๋๋ค.
view๋ ๋ง์น ํ ์ด๋ธ์ฒ๋ผ ํน์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋์ ์ ์ฅํ ์ ์๋ค.
view ํ์
CREATE OR REPLACE VIEW ๋ทฐ์ด๋ฆ AS SELECT ์ง์ ์ฟผ๋ฆฌ;
์์
-- ์์ฃผ ์ฌ์ฉํ๋ ์ฟผ๋ฆฌ
SELECT s.id, s.user_id, s.created, s.channel_id, c.channel
FROM session s
JOIN channel c ON c.id = s.channel_id;
CREATE OR REPLACE VIEW test.suranSessionDetails AS
SELECT s.id, s.user_id, s.created, s.channel_id, c.channel
FROM session s
JOIN channel c ON c.id = s.channel_id;
test.suranSessionDetails
๋ฅผ ๊ฐ์ํ
์ด๋ธ์ฒ๋ผ ์ฌ์ฉํ ์ ์๋ค.SELECT *
FROM test.suranSessionDetails
WHERE id = 7;
view๋ ์์ฃผ ์ฐ๋ select์ฟผ๋ฆฌ๋ฅผ ๋ง์น ํ
์ด๋ธ์ฒ๋ผ DB์ ๋ฑ๋กํ๊ณ , ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๊ฒ ํด์ฃผ๋ ๋ฐฉ๋ฒ์ด๋ค.
view๋ ํ
์ด๋ธ์ฒ๋ผ ํน์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋์ ์ ์ฅํ ์ ์๊ณ ,
๋ทฐ ์์ฑ ์์๋ CREATE OR REPLACE VIEW ๋ทฐ์ด๋ฆ AS SELECT ์ง์ ์ฟผ๋ฆฌ;
๋ฅผ ์ฌ์ฉํ๋ค.