- ๋ทฐ๋ ํ๋ ์ด์์ ํ
์ด๋ธ์ ์กฐํํ๋ SELECT๋ฌธ์ ์ ์ฅํ ๊ฐ์ฒด
- ์์ฃผ ์ฐ์ด๋ SELECT ๋ฌธ์ VIEW ํํ๋ก ์ ์ฅํ ๊ฒ
- VIEW๋ ๋ณต์กํ ์ฟผ๋ฆฌ๋ฅผ ๋จ์ํ ํ ์ ์์
- ์ฌ์ฉ์์๊ฒ ํ์ํ ์ ๋ณด๋ง ์ ๊ทผํ๋๋ก ์ ๊ทผ์ ์ ํ ํ ์ ์์
VIEW ์์ฑ
CREATE VIEW VW_EMP20
AS (SELECT ENAME, JOB, SAL
FROM EMP
WHERE JOB = 'CLERK');
SELECT * FROM VW_EMP20;
๋จ์ VIEW ์์ฑ
- ๋จ์ VIEW๋ ๋จ์ผ ํ
์ด๋ธ์ ํ์ํ ์ปฌ๋ผ์ ๋์ดํ ๊ฒ (GROUP BY, UNION ์ฌ์ฉX)
- ๋จ์ VIEW๋ SELECT, INSERT, UPDATE, DELETE๋ฅผ ์์ ๋กญ๊ฒ ์ฌ์ฉ ๊ฐ๋ฅ
CREATE VIEW V_EMP
AS (SELECT EMPNO, ENAME, JOB, HIREDATE
FROM EMP);
SELECT * FROM V_EMP;
VIEW ์ญ์
DROP VIEW VW_EMP20;
์ธ๋ผ์ธ VIEW๋ฅผ ์ฌ์ฉํ TOP-N SQL๋ฌธ
- TOP-N ์ฟผ๋ฆฌ : ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๊ฐ์ฅ ํฐ N๊ฐ์ ๊ฐ์ ๊ฒ์ํ๋ ์ฟผ๋ฆฌ
SELECT ROWNUM, EMP.*
FROM(SELECT *
FROM EMP
ORDER BY SAL DESC) EMP
WHERE ROWNUM <= 3;
VIEW๋ฅผ ํตํ DML๋ฌธ ์คํ
CREATE VIEW EMP_COPY_VIEW
AS SELECT EMP.*
FROM EMP;
SELECT * FROM EMP_COPY_VIEW;
INSERT INTO EMP_COPY_VIEW VALUES(9999, 'KYUNG', 'DEVELOPER', NULL, '2022/12/30', 3000, NULL, 30);
UPDATE EMP_COPY_VIEW
SET DEPTNO = 20
WHERE ENAME = 'MARTIN';
DELETE FROM EMP_COPY_VIEW
WHERE ENAME = 'KYUNG';