GiantStepDEV
  • ๋ทฐ๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ํ…Œ์ด๋ธ”์„ ์กฐํšŒํ•˜๋Š” 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';
profile

GiantStepDEV

@kongmi

ํฌ์ŠคํŒ…์ด ์ข‹์•˜๋‹ค๋ฉด "์ข‹์•„์š”โค๏ธ" ๋˜๋Š” "๊ตฌ๋…๐Ÿ‘๐Ÿป" ํ•ด์ฃผ์„ธ์š”!