[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] PL/SQL

๐Ÿงช Computer Science/Database

PL/SQL์ด๋ž€?

  • Procedural Language/Structured Query Language๋กœ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•˜๋Š” ์˜ค๋ผํด ์ „์šฉ SQL ์–ธ์–ด
  • SQL ์ „์šฉ ์–ธ์–ด๋กœ SQL๋ฌธ์— ๋ณ€์ˆ˜, ์ œ์–ด, ์ž…์ถœ๋ ฅ ๋“ฑ์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜์—ฌ SQL๋งŒ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์–ด๋ ค์šด ๋ฌธ์ œ ํ•ด๊ฒฐ
  • PL/SQL์€ SQL Developer์—์„œ ๋ฐ”๋กœ ์ž‘์„ฑํ•˜๊ณ  ์ปดํŒŒ์ผํ•œ ํ›„ ๊ฒฐ๊ณผ๋ฅผ ์‹คํ–‰ํ•จ
  • PL/SQL์—๋Š” ํ”„๋กœ์‹œ์ €, ํŠธ๋ฆฌ๊ฑฐ, ์‚ฌ์šฉ์ž ์ •์˜ ํ•จ์ˆ˜ ๋“ฑ์ด ์žˆ๋‹ค.

ํ”„๋กœ์‹œ์ €

  • CREATE PROCEDURE ๋ฌธ์„ ์‚ฌ์šฉํ•ด ์ •์˜
  • PL/SQL์€ ์„ ์–ธ๋ถ€(BEGIN)์™€ ์‹คํ–‰๋ถ€(END)๋กœ ๊ตฌ์„ฑ
  • ์„ ์–ธ๋ถ€์—์„œ๋Š” ๋ณ€์ˆ˜์™€ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ , ์‹คํ–‰๋ถ€์—์„œ๋Š” ํ”„๋กœ๊ทธ๋žจ ๋กœ์ง์„ ๊ตฌํ˜„ํ•œ๋‹ค.
  • ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์ €์žฅ ํ”„๋กœ์‹œ์ €๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ ๊ทธ ํ”„๋กœ์‹œ์ €์— ์ „๋‹ฌ๋˜๋Š” ๊ฐ’์ด๋‹ค.
  • ๋ณ€์ˆ˜๋Š” ์ €์žฅ ํ”„๋กœ์‹œ์ €๋‚˜ ํŠธ๋ฆฌ๊ฑฐ ๋‚ด์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ฐ’์ด๋‹ค.

  • Insert๋‚˜ Update์™€ ๊ฐ™์ด ์—ฌ๋Ÿฌ ๋ฒˆ ์ž์ฃผ ์‚ดํžํ•ด์•ผํ•˜๋Š” SQL๋ฌธ๋“ค์„ ํ”„๋กœ์‹œ์ €๋กœ ๊ตฌํ˜„ํ•ด๋‘๋ฉด ์ƒ๋‹นํ•œ ํŽธ๋ฆฌ์„ฑ์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

ํŠธ๋ฆฌ๊ฑฐ

  • ๋ฐ์ดํ„ฐ์˜ ๋ณ€๊ฒฝ(INSERT, DELETE, UPDATE)๋ฌธ์ด ์‹คํ–‰๋  ๋•Œ ์ž๋™์œผ๋กœ ์‹คํ–‰๋˜๋Š” ํ”„๋กœ์‹œ์ €๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
  • CREATE TRIGGER ๋ฌธ์„ ์‚ฌ์šฉํ•ด ์ •์˜
  • BEFORE ํŠธ๋ฆฌ๊ฑฐ์™€ AFTER ํŠธ๋ฆฌ๊ฑฐ๊ฐ€ ์žˆ๋‹ค.
  • BEFORE ํŠธ๋ฆฌ๊ฑฐ๋Š” ํ•ด๋‹น ํ”„๋กœ์‹œ์ €์˜ ์‹คํ–‰ ์ด์ „์— ์ž๋™์œผ๋กœ ๋จผ์ € ์‹คํ–‰๋˜๋Š” ํ”„๋กœ์‹œ์ €์ด๋ฉฐ, AFTER ํŠธ๋ฆฌ๊ฑฐ๋Š” ํ•ด๋‹น ํ”„๋กœ์‹œ์ €๊ฐ€ ์‹คํ–‰๋œ ํ›„์— ์ž๋™์œผ๋กœ ์‹คํ–‰๋˜๋Š” ํ”„๋กœ์‹œ์ €์ด๋‹ค.


์‚ฌ์šฉ์ž ์ •์˜ ํ•จ์ˆ˜

  • CREATE FUNCTION ๋ฌธ์„ ์‚ฌ์šฉํ•ด ์ •์˜
  • ์‚ฌ์šฉ์ž ์ •์˜ ํ•จ์ˆ˜๋Š” ์ˆ˜ํ•™์˜ ํ•จ์ˆ˜์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ž…๋ ฅ๋œ ๊ฐ’์„ ๊ฐ€๊ณตํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฅผ ๋Œ๋ ค์ค€๋‹ค.

ํ”„๋กœ์‹œ์ €, ํŠธ๋ฆฌ๊ฑฐ, ์‚ฌ์šฉ์ž ์ •์˜ ํ•จ์ˆ˜ ๋น„๊ต