๐Ÿงฑ[SQL] Stored Procedure ์ด๋ž€?

์–‘ํ˜„์ •ยท2023๋…„ 12์›” 6์ผ
0

SQL

๋ชฉ๋ก ๋ณด๊ธฐ
7/7
post-thumbnail

๐Ÿ”ŽStored Procedure(์ €์žฅํ”„๋กœ์‹œ์ €) ๋ž€ ๋ฌด์—‡์ธ์ง€์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.


๐Ÿš€Stored Procedure

๋ฏธ๋ฆฌ SQL๋ฌธ์„ ๋งŒ๋“ค์–ด ์ €์žฅํ•ด ๋†“๊ณ  ํ•„์š”ํ•  ๋•Œ ๋งˆ๋‹ค ํ˜ธ์ถœํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋Šฅ ์ž…๋‹ˆ๋‹ค.

  • books ํ…Œ์ด๋ธ”์„ selectํ•˜๋Š” sql ๋ฌธ ์ž…๋‹ˆ๋‹ค.
SELECT * FROM books
  • books ํ…Œ์ด๋ธ”์„ selectํ•˜๋Š” sql๋ฌธ์„ ์ €์žฅํ•ด ๋†“์€ Stored Procedure ์ž…๋‹ˆ๋‹ค.
USE pubs
GO

--ํ”„๋กœ์‹œ์ ธ ์ƒ์„ฑ๊ตฌ๋ฌธ
CREATE PROC bookSP
AS
SELECT * FROM books
GO

--ํ”„๋กœ์‹œ์ ธ ์ˆ˜ํ–‰ ๊ตฌ๋ฌธ
EXEC bookSP

ใ€€

์•ž์„œ ๋ณด์—ฌ๋“œ๋ฆฐ ์˜ˆ์‹œ๋งŒ ๋ด์„œ๋Š” ๊ตณ์ด ์™œ ๋” ๋ณต์žกํ•œ stored procedure์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”์ง€ ์ดํ•ด๊ฐ€ ๊ฐ€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด stored procedured์˜ ์žฅ์ ์€ ๋ฌด์—‡์ผ๊นŒ์š”?

Stored Procedure์˜ ์žฅ์ 

  1. ์„ฑ๋Šฅ์˜ ํ–ฅ์ƒ
  2. ๋ณด์•ˆ์„ฑ์— ์œ ๋ฆฌ
  3. ์œ ์ง€๋ณด์ˆ˜, ์žฌํ™œ์šฉ์„ฑ์— ์œ ๋ฆฌ
  4. ๋„คํŠธ์›Œํฌ ๋ถ€ํ•˜ ๊ฐ์†Œ

1. ์„ฑ๋Šฅ์˜ ํ–ฅ์ƒ

์„ฑ๋Šฅ์˜ ํ–ฅ์ƒ์„ ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•ด ๋จผ์ € SQL ๋ฌธ๊ณผ ์ €์žฅ ํ”„๋กœ์‹œ์ € ๋™์ž‘ ๋ฐฉ์‹์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๐ŸŽฏ SQL ๋™์ž‘๋ฐฉ์‹

[์ฒซ ์‹คํ–‰]

[N๋ฒˆ์งธ ์‹คํ–‰]

์ด๋•Œ ๋งŒ์•ฝ ์บ์‹œ์— ๋™์ผํ•œ ์ฟผ๋ฆฌ๊ฐ€ ์—†๋‹ค๋ฉด ์œ„์˜ ๊ณผ์ •์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ์žฌ์‹คํ–‰ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๐ŸŽฏ Stored Procedure ๋™์ž‘๋ฐฉ์‹

[Stored Procedure ์ƒ์„ฑ]

[์ฒซ ์‹คํ–‰]

  • Stored Procedure ์ƒ์„ฑ์‹œ ์— ๊ตฌ๋ฌธ๋ถ„์„์„ ์™„๋ฃŒํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋‹จ๊ณ„์—์„œ๋Š” ๊ตฌ๋ฌธ๋ถ„์„์„ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
[N๋ฒˆ์งธ ์‹คํ–‰]
  • ์ดํ›„ ์‹คํ–‰ ๋ถ€ํ„ฐ๋Š” ์บ์‹œ์— ์žˆ๋Š” ๊ฒƒ์„ ์žฌ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์–ด ์ˆ˜ํ–‰์‹œ๊ฐ„์ด ๋งŽ์ด ๋‹จ์ถ•๋ฉ๋‹ˆ๋‹ค.

โœจ ์˜ˆ์ œ๋ฅผ ํ™•์ธํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

sql๋ฌธ

  • ์šฐ์„  sql๋ฌธ์€ where์ ˆ์˜ ์กฐ๊ฑด๋งŒ ๋‹ค๋ฅธ 3๊ฐ€์ง€์˜ ์ฟผ๋ฆฌ๋ฌธ์„ ๋งค๋ฒˆ ์ตœ์ ํ™”์™€ ์ปดํŒŒ์ผ์„ ๋‹ค์‹œ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
SELECT * FROM books WHERE quantity = 1;
SELECT * FROM books WHERE quantity = 2;
SELECT * FROM books WHERE quantity = 3;

Stored Procedure

  • ๊ทธ์— ๋ฐ˜ํ•ด Stored Procedure๋Š” ์ฒซ ์ˆ˜ํ–‰์ธ 1์„ ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ณผ์ •์—์„œ๋งŒ ์ตœ์ ํ™”์™€ ์ปดํŒŒ์ผ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  N๋ฒˆ์งธ ์ˆ˜ํ–‰ ๋ถ€ํ„ฐ๋Š” (2,3) ์บ์‹œ์— ์žˆ๋Š”๊ฒƒ์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
--ํ”„๋กœ์‹œ์ ธ ์ƒ์„ฑ๊ตฌ๋ฌธ
CREATE PROC bookSP
	@Quantity int
AS
	SELECT * FROM books WHERE quantity = @quantity;
--ํ”„๋กœ์‹œ์ ธ ์ˆ˜ํ–‰ ๊ตฌ๋ฌธ
EXEC bookSP 1;
EXEC bookSP 2;
EXEC bookSP 3;

๋”ฐ๋ผ์„œ stored procedure์„ ์‚ฌ์šฉํ•˜๋ฉด ์„ฑ๋Šฅ์ ์ธ ๋ฉด์—์„œ ์œ ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

2. ๋ณด์•ˆ์„ฑ์— ์œ ๋ฆฌ

์‹ค์ œ ํ…Œ์ด๋ธ”์— ์ ‘๊ทผํ•˜์—ฌ ๋‹ค์–‘ํ•œ ์กฐ์ž‘์„ ํ•˜๋Š” ๊ฒƒ์€ ์œ„ํ—˜ํ•œ ์ผ์ž…๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์‚ฌ์šฉ์ž๋ณ„๋กœ ํ…Œ์ด๋ธ”์— ๊ถŒํ•œ์„ ์ฃผ๋Š”๊ฒŒ ์•„๋‹Œ ์ €์žฅ ํ”„๋กœ์‹œ์ €์—๋งŒ ์ ‘๊ทผ ๊ถŒํ•œ์„ ์ฃผ๋Š” ๋ฐฉ์‹์„ ํ†ตํ•ด ๋ณด์•ˆ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3. ์œ ์ง€๋ณด์ˆ˜, ์žฌํ™œ์šฉ์„ฑ์— ์œ ๋ฆฌ

ํ”„๋กœ์‹œ์ €๋ฅผ ํ•œ ๋ฒˆ ๋งŒ๋“ค์–ด ๋†“์œผ๋ฉด ํ”„๋กœ์‹œ์ € ์ด๋ฆ„๊ณผ ๋งค๊ฐœ๋ณ€์ˆ˜ ๋งŒ์œผ๋กœ ๊ณ„์† ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์œ ์ง€๋ณด์ˆ˜์™€ ์žฌํ™œ์šฉ์„ฑ์— ์œ ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์—์„œ ์ฟผ๋ฆฌ๋ฌธ์„ ์ผ์ผ์ด ์ฐพ์•„ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ํ”„๋กœ์‹œ์ €๋ฅผ ์ˆ˜์ •ํ•˜๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์›ํ™œํ•œ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ๊ฐ€๋Šฅํ•ด ์ง‘๋‹ˆ๋‹ค.

4. ๋„คํŠธ์›Œํฌ ๋ถ€ํ•˜ ๊ฐ์†Œ

์„œ๋ฒ„๋กœ ๋งŽ์€ ์–‘์˜ ์ผ๋ฐ˜ ์ฟผ๋ฆฌ๋ฅผ ๊ณ„์† ํ˜ธ์ถœํ•œ๋‹ค๋ฉด ๋„คํŠธ์›Œํฌ์— ๋ถ€๋‹ด์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์‹œ์ €๋Š” ํ”„๋กœ์‹œ์ € ๋ช…๊ณผ ๋งค๊ฐœ๋ณ€์ˆ˜๋งŒ์œผ๋กœ ํ˜ธ์ถœ ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋„คํŠธ์›Œํฌ์— ๋Œ€ํ•œ ๋ถ€๋‹ด์„ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


Stored Procedure์˜ ๋‹จ์ 

์ตœ์ ํ™” ๋‹จ๊ณ„์—์„œ ๊ฒฐ์ •๋˜๋Š” ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉ์—ฌ๋ถ€๋กœ ์ธํ•ด ์„ฑ๋Šฅ ๋ณ€ํ™”๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ฐ์ดํ„ฐ ์–‘์ด ๋งŽ์„ ๊ฒฝ์šฐ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์˜คํžˆ๋ ค ์„ฑ๋Šฅ์ด ๋” ๋‚˜๋น ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€