๋ชฉ์ฐจ
view๋ ๊ฐ์์ ํ
์ด๋ธ์ ์๋ฏธ, view๋ ๋ฐ์ดํฐ๋ ์๊ณ ์๋ณธ ํ
์ด๋ธ์ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ค๋ SQL query๋ง ์ ์ฅ๋์ด ์์
์ฌ์ฉ์๊ฐ ํด๋น view๋ฅผ ์ฌ์ฉํ๋ SQL๋ฅผ ์คํํ ๋๋ง view์ ๋ค์ด ์๋ ์ฟผ๋ฆฌ๊ฐ ์คํ๋จ
-- ๊ฐ๋จํ view ์์ฑ
CREATE OR REPLACE VIEW v_emp1
AS SELECT empno, ename, hiredate
FROM emp;
-- view ์กฐํ ์ ์๋์ฒ๋ผ ๊ฒฐ๊ณผ๊ฐ ํ์๋จ(empํ
์ด๋ธ์์ ๋ฐ์ดํฐ๋ฅผ ์กฐํํด )
SELECT * FROM v_emp1;

view๋ฅผ ์์ฑํ๋ฉด ์ค๋ผํด์ ํด๋น view ์ ๋ณด๋ฅผ ๋์
๋๋ฆฌ์ ์ ์ฅํ ๋ค์ ์ฌ์ฉ์๊ฐ view๋ฅผ ์ฌ์ฉํ ๋๋ง view์ ์๋ธ์ฟผ๋ฆฌ๊ฐ ์คํ๋์ด ์๋ณธ ํ
์ด๋ธ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ด
โป ์ด ์๋ฏธ๋ ํ์์ ์ด view์๋ ๋ฐ์ดํฐ๊ฐ ์๋ค๋ ๋ป์ด๊ธฐ๋ ํจ
view์๋ ์ ์ฝ์กฐ๊ฑด์ด๋ ์ธ๋ฑ์ค ๋ฑ์ ์์ฑํ ์๊ฐ ์์
-- emp table๊ณผ dept ํ
์ด๋ธ์ ์กฐํํ์ฌ ์ฌ์์ด๋ฆ๊ณผ ๋ถ์ ์ด๋ฆ์ ์ถ๋ ฅํ๋ view์์ฑ(๋ถ์๋ฒํธ๋ก ์กฐ์ธ)
CREATE OR REPLACE VIEW v_emp
AS
SELECT e.ENAME, d.DNAME
FROM emp e, dept d
WHERE e.DEPTNO = d.DEPTNO
;
๋งค๋ฒ ์์ ๊ฐ์ ๋ณต์กํ ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์์ฑํด์ ์กฐํํ๊ธฐ๊ฐ ๊ท์ฐฎ๊ณ ํ๋ค ๋ view๋ฅผ ์์ฑ ํด ๋๊ณ ๊ฐ๋จํ๊ฒ ์กฐํํ ์ ์๋ค๋ ๊ฒ์ด view์ ํฐ ํธ๋ฆฌํจ์
๊ทธ๋ฌ๋ view๋ฅผ ์๋ชป ์ฌ์ฉํ ๊ฒฝ์ฐ ์ฑ๋ฅ ์ ํ์ ์ฃผ ์์ธ์ด ๋๋ ๊ฒฝ์ฐ๋ ๋ง์
view์์๋ ๊ฐ๊ธ์ INTERSECT, MINUS, UNION ๊ฐ์ ์งํฉ ์ฐ์ฐ์๋ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ์ฑ๋ฅ ํฅ์์ ๋์์ด ๋๋ค๋ ์ ๋ ๊ธฐ์ตํ ๊ฒ
์ถ์ฒ : ์ค๋ผํด SQL๊ณผ PL/SQL ์ฑ

'IT > DataBase' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Oracle]ORACLE SUB QUERY (0) | 2022.11.25 |
|---|---|
| [Oracle]์ค๋ผํด SELECT 1 FROM 'ํ ์ด๋ธ๋ช ' (0) | 2022.11.25 |
| [Oracle]์ค๋ผํด CTAS(Create Table As SELECT) (0) | 2022.11.25 |
| [Oracle]GROUP BY + ROLL UP์ด์ฉํ ์๊ณ ๊ตฌํ๊ธฐ (0) | 2022.11.25 |
| [Oracle] ํ ์ด๋ธ/ํ ์ด๋ธ ๋ชฉ๋ก ์กฐํ (0) | 2022.11.25 |
๋๊ธ