๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ’ป/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.