๐ป/ORACLE22 (30)[ORACLE] 13์ผ์ฐจ : ์ธ๋ฑ์ค(INDEX) ์ธ๋ฑ์ค๋? ์ธ๋ฑ์ค๋ ์ผ๋ฐ ํ ์ด๋ธ์ด๋ ํด๋ฌ์คํฐ์์ ์ฐ์ฌ์ง๋ ์ ํ์ ์ธ ๊ฐ์ฒด๋ก์, ์ค๋ผํด ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ๋ด์ ์ํ๋ ๋ ์ฝ๋๋ฅผ ๋น ๋ฅด๊ฒ ์ฐพ์๊ฐ ์ ์๋๋ก ๋ง๋ค์ด์ง ๋ฐ์ดํฐ ๊ตฌ์กฐ์ด๋ค. SQL ๋ช ๋ น๋ฌธ์ ์ฒ๋ฆฌ ์๋๋ฅผ ํฅ์์ํค๊ธฐ ์ํด์ ์ปฌ๋ผ์ ๋ํด์ ์์ฑํ๋ ์ค๋ผํด ๊ฐ์ฒด ์ธ๋ฑ์ค๋ ๋์คํฌ I/O๋ฅผ ์ค์ด๋ ๋ง์ ๋ฐฉ๋ฒ ์ค ํ๋. ์ตํฐ๋ง์ด์ ๊ฐ ์ต์ ์ ๊ฒฝ๋ก๋ฅผ ๊ฒฐ์ ํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ์์ ์ตํฐ๋ง์ด์ ๋ SQL์ ๊ฐ์ฅ ๋น ๋ฅด๊ณ ํจ์จ์ ์ผ๋ก ์ํํ ์ต์ (์ต์ ๋น์ฉ)์ ์ฒ๋ฆฌ๊ฒฝ๋ก๋ฅผ ์์ฑํด์ฃผ๋ DBMS ๋ด๋ถ์ ํต์ฌ์์ง์ด๋ค. ์ธ๋ฑ์ค ํน์ฑ ์ธ๋ฑ์ค๋ ์ฐ๊ด๋ ๊ฐ์ฒด์ ๋ฐ์ดํฐ์ ๋ ผ๋ฆฌ์ ๋ฐ ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋ ๋ฆฝ์ ์ธ ์คํค๋ง ๊ฐ์ฒด ํ ์ด๋ธ์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ์ํฅ์ ์ฃผ์ง ์๊ณ ์ธ๋ฑ์ค๋ฅผ ์ญ์ ํ๊ฑฐ๋ ๋ง๋ค ์ ์๋ค. ํด๋ฌ์คํฐ๋ง ์ธ๋ฑ์ค๋ ํ๋๋ง ์์ฑํ ์ ์๋ค. ํด๋ฌ์คํฐ๋ ๋์คํฌ๋ก.. 2024. 3. 27. (29)[ORACLE] 12์ผ์ฐจ : PL/SQL - 5 (ํธ๋ฆฌ๊ฑฐ ๋ฐ ํจํค์ง) ํธ๋ฆฌ๊ฑฐ๋? ์คํค๋ง ๊ฐ์ฒด์ ์ผ์ข ์ผ๋ก, ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋ฏธ๋ฆฌ ์ ํด ๋์ ํน์ ์กฐ๊ฑด์ด ๋ง์กฑ๋๊ฑฐ๋ ์ด๋ค ๋์์ด ์ํ๋๋ฉด ์๋์ผ๋ก ์คํ๋๋๋ก ์ ์ํ ๋์. ex. ํ ์ด๋ธ์ DML ๋ฌธ์ฅ์ด ์คํ ๋๊ฑฐ๋, ์ฌ์ฉ์๊ฐ ์ค์ ํ DDL ๋ฌธ์ฅ์ด ์ํ๋ ๋ ํธ๋ฆฌ๊ฑฐ๊ฐ ์คํ๋ ์ ์๋ค. ํธ๋ฆฌ๊ฑฐ(TRIGGER)์ ํ DML ํธ๋ฆฌ๊ฑฐ INSERT, DELETE, UPDATE ์์ ์ด ์ผ์ด๋ ๋ ์๋์ผ๋ก ์คํ๋๋ ๊ฐ์ฒด๋ก ์ด๋ฐ TRIGGER๋ฅผ DML TRIGGER๋ผ ํ๋ค. INSTEAD OF ํธ๋ฆฌ๊ฑฐ ํ ์ด๋ธ์ด ์๋ ๋ทฐ์ ์ ์๋ ํธ๋ฆฌ๊ฑฐ ์์คํ ํธ๋ฆฌ๊ฑฐ ์คํค๋ง ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์๋ ํธ๋ฆฌ๊ฑฐ ํธ๋ฆฌ๊ฑฐ ๊ธฐ๋ณธ ๊ตฌ๋ฌธ ํธ๋ฆฌ๊ฑฐ๋ฅผ ์์ฑํ๊ฑฐ๋ ์ญ์ ํ๊ธฐ ์ํด์๋ ์ฌ์ฉ์๋ CREATE TRIGGER ๊ถํ์ ๊ฐ์ ธ์ผ ํ๋ค. -- ๊ด๋ฆฌ์ ๊ณ์ : sky ๊ณ์ ์ ํธ๋ฆฌ๊ฑฐ๋ฅผ ๋ง๋ค.. 2024. 3. 27. (29)[ORACLE] 12์ผ์ฐจ : PL/SQL - 4 (์์ธ์ฒ๋ฆฌ) ์์ธ๋? PL/SQL ๋ธ๋ก์ด ์คํ๋๋ ๋์ ๋ฐ์๋๋ ์๋ฌ๋ฅผ ์์ธ๋ผ ํ๋ค. ์ปดํ์ผ ์๋ฌ : PL/SQL ๋ธ๋ก์ด ํ์ฑ๋ ๋ ์ฌ์ฉ์ ์คํ,๊ตฌ๋ฌธ ์ค๋ฅ ๋ฑ์ผ๋ก ์ธํด ๋ฐ์๋๋ ์๋ฌ ๋ฐํ์ ์๋ฌ : PL/SQL ๋ธ๋ก์ด ์คํ๋๋ ๋์ ๋ฐ์ํ๋ ์๋ฌ๋ก ์ผ๋ฐ์ ์ผ๋ก ๋ฐํ์ ์๋ฌ๋ฅผ Exception์ด๋ผ ๋ถ๋ฅธ๋ค. ์ค๋ผํด ์์ธ ๋ฏธ๋ฆฌ ์ ์๋ ์ค๋ผํด ์์ธ, PL/SQL ์ฝ๋์์ ์์ฃผ ๋ฐ์ํ๋ ERROR์ ๋ฏธ๋ฆฌ ์ ์ ๋ฏธ๋ฆฌ ์ ์๋์ง ์์ ์์ธ,๊ธฐํ ํ์ค(์ฌ์ฉ์๊ฐ ์ ์ธํ๊ณ ์ค๋ผํด ์๋ฒ๊ฐ ์์์ ์ผ๋ก ๋ฐ์) ์ฌ์ฉ์ ์ ์ ์์ธ ํ๋ก๊ทธ๋๋จธ๊ฐ ์ ํ ์กฐ๊ฑด์ด ๋ง์กฑ๋์ง ์์ ๊ฒฝ์ฐ(์ฌ์ฉ์๊ฐ ์ ์ธํ๊ณ ๋ช ์์ ์ผ๋ก ๋ฐ์ํ๋ค.) DECLARE vNAME VARCHAR2(30); vSal NUMBER; BEGIN --SELECT name,sal INTO vName.. 2024. 3. 27. (29)[ORACLE] 12์ผ์ฐจ : PL/SQL - 3 (์ปค์์ ๋์ ์ฟผ๋ฆฌ) ์ปค์(Cursor)๋? ํ๋์ ๋ ์ฝ๋๊ฐ ์๋ ์ฌ๋ฌ ๋ ์ฝ๋๋ก ๊ตฌ์ฑ๋ ์์ ์์ญ์์ SQL๋ฌธ์ ์คํํ๊ณ ๊ทธ ๊ณผ์ ์ ์๊ธด ์ ๋ณด๋ฅผ ์ ์ฅํ๊ธฐ ์ํด์ CURSOR๋ฅผ ์ฌ์ฉํ๋ค. ์ค๋ผํด ์๋ฒ์ ์ํด ์คํ๋๋ ๋ชจ๋ SQL๋ฌธ์ ์ฐ๊ด๋ ๊ฐ๊ฐ์ ์ปค์๋ฅผ ์์ ํ๊ณ ์๋ค. ์ปค์์ ์ข ๋ฅ ์์์ ์ปค์ : ๋ชจ๋ DML๊ณผ PL/SQL SELECT๋ฌธ์ ๋ํด ์ ์ธ๋๋ค. ๋ช ์์ ์ปค์ : ํ๋ก๊ทธ๋๋จธ์ ์ํด ์ ์ธ๋๋ฉฐ ์ด๋ฆ์ด ์๋ ์ปค์. ์์์ ์ปค์ ์์์ ์ธ ์ปค์๋ ์ค๋ผํด์ด๋ PL/SQL์คํ ๋ฉ์ปค๋์ฆ์ ์ํด ์ฒ๋ฆฌ๋๋ SQL๋ฌธ์ฅ์ด ์ฒ๋ฆฌ๋๋ ๊ณณ์ ๋ํ ์ต๋ช ์ ์ฃผ์. ์ค๋ผํด ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์คํ๋๋ ๋ชจ๋ ๋ฌธ์ฅ์ ์์์ ์ธ ์ปค์๊ฐ ์์ฑ๋๋ฉฐ, ์ปค์ ์์ฑ์ ์ฌ์ฉํ ์ ์๋ค. ์์์ ์ปค์๋ SQL ๋ฌธ์ด ์คํ๋๋ ์๊ฐ ์๋์ผ๋ก OPEN๊ณผ CLOSE๋ฅผ ์คํํ๋ค. --.. 2024. 3. 26. (28)[ORACLE] 11์ผ์ฐจ : PL/SQL - 2 ํ๋ก์์ ๋? PL/SQL์์ ๊ฐ์ฅ ๋ํ์ ์ธ ๊ตฌ์กฐ์ธ ํ๋ก์์ ๋ ๊ฐ๋ฐ์๊ฐ ์์ฃผ ์คํํด์ผ ํ๋ ์ ๋ฌด ํ๋ฆ(SQL)์ ๋ฏธ๋ฆฌ ์์ฑํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์ ์ ์ฅํด ๋์๋ค๊ฐ ํ์ํ ๋๋ง๋ค ํธ์ถํ์ฌ ์คํ ํ ์ ์๋ค. ํ๋ก์์ ๋ ํน์ ํ ๋ก์ง์ ์ฒ๋ฆฌํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ์ง ์๋๋ค. ํ๋ก์์ ํน์ง ํจํค์ง ๋ด์์ ํ๋ก์์ ๋ ์ค๋ณต ์ ์ ๊ฐ๋ฅ ํ ์ด๋ธ์ด ์ญ์ ๋์ด๋ ์ฐ๊ด๋ ํ๋ก์์ ๊ฐ ์ญ์ ๋๋ ๊ฒ์ ์๋๋ค ํ ์ด๋ธ์ด ์ญ์ ๋ ์ํ์์ ์ฐ๊ด๋ ํ๋ก์์ ๋ฅผ ์คํํ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค. ํ๋ก์์ ์์์ INSERT,UPDATE,DELETE๋ฌธ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์๋ COMMIT ๋์ง ์์ผ๋ฏ๋ก COMMIT; ๊ตฌ๋ฌธ์ ์ถ๊ฐ ํด์ผ๋๋ค. ํ๋ก์์ ์ ๋ณด ํ์ธ --ํ๋ก์์ ๋ชฉ๋กํ์ธ SELECT * FROM user_procedures; --์์กด์ฑ ํ์ธ SELECT.. 2024. 3. 25. (28)[ORACLE] 11์ผ์ฐจ : PL/SQL PL/SQL์ด๋? ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ํน์ฑ์ ๊ฐ์ง๋ SQL์ ํ์ฅ์ด๋ฉฐ, ๋ฐ์ดํฐ ์กฐ์๊ณผ ์ง์ ๋ฌธ์ฅ์ PL/SQL์ ์ ์ฐจ์ ์ฝ๋ ์์ ํฌํจ๋๋ค. ์ฃผ๋ก ์๋ฃ ๋ด๋ถ์์ SQL๋ช ๋ น๋ฌธ๋ง์ผ๋ก ์ฒ๋ฆฌํ๊ธฐ์๋ ๋ณต์กํ ์๋ฃ์ ์ ์ฅ์ด๋ ํ๋ก์์ ์ ํธ๋ฆฌ๊ฑฐ ๋ฑ์ ์์ฑํ๋๋ฐ ์ฌ์ฉ๋๋ค. PL/SQL์ ํ๋ก๊ทธ๋จ์ ๋ ผ๋ฆฌ์ ์ธ ๋ธ๋ก์ผ๋ก ๋๋๋ ๊ตฌ์กฐํ ๋ ๋ธ๋ก์ธ์ด์ด๋ค PL/SQL ๋ธ๋ก์ ์ ์ธ๋ถ(์ ํ์ ),์คํ๋ถ(ํ์์ ),์์ธ ์ฒ๋ฆฌ๋ถ(์ ํ์ )๋ก ๊ตฌ์ฑ๋์ด ์๊ณ , BEGIN๊ณผ END ํค์๋๋ ๋ฐ๋์ ๊ธฐ์ ํด ์ฃผ์ด์ผ ํ๋ค. PL/SQL ํ๋ก๊ทธ๋๋ฐ ๋จ์ PL/SQL ์ต๋ช ๋ธ๋ก ํจ์ ํ๋ก์์ ํจ๊ธฐ์ง : ํจํค์ง ๋ช ์ธ, ํจํค์ง ๋ฐ๋ ํธ๋ฆฌ๊ฑฐ ๊ธฐ๋ณธ๋ฌธ๋ฒ --PL/SQL SELECT SELECT ์ปฌ๋ผ, ์ปฌ๋ผ INTO ๋ณ์, ๋ณ์, FROM ํ ์ด๋ธ WHERE ์กฐ๊ฑด; %.. 2024. 3. 25. ์ด์ 1 2 3 4 ๋ค์