IT/DataBase

[Oracle]view(๋ทฐ)

์•Œ ์ˆ˜ ์—†๋Š” ์‚ฌ์šฉ์ž 2022. 11. 25.

๋ชฉ์ฐจ

    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์—๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋‹ค๋Š” ๋œป์ด๊ธฐ๋„ ํ•จ
    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 ์ฑ…

    ๋Œ“๊ธ€