์ ๋ฆฌ
-์คํ ์ด๋ ํ๋ก์์ ์ฌ์ฉ ๋ฐฉ๋ฒ
์คํ ์ด๋ ํ๋ก์์ ๋? SQL์ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ฅ์ ์ถ๊ฐํด ์ผ๋ฐ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋น์ทํ ํจ๊ณผ๋ฅผ ๋ผ ์ ์๋ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ฅ์ด๋ค. BEGIN๊ณผ END์ฌ์ด์ ์ฝ๋๋ฅผ ๊ตฌํ. ์ฟผ๋ฆฌ ๋ฌธ์ ์งํฉ์ผ๋ก๋ ๋ณผ ์ ์๊ณ ๋ณดํต ์ด๋ ํ ๋์์ ์ผ๊ด ์ฒ๋ฆฌํ๊ธฐ ์ํ ์ฉ๋๋ก ์ฌ์ฉํ๋ค.
โ ์ฟผ๋ฆฌ๋ฅผ ๋ฐ๋ณตํ๋ ๊ฒ๋ณด๋ค ์คํ ์ด๋ ํ๋ก์์ ๋ก ๋ฌถ์ด๋๊ณ ํ์ํ ๋๋ง๋ค ๊ฐ๋จํ ํธ์ถํ๋ฉด ํจ์ฌ ํธ๋ฆฌํ๊ฒ ์ด์ํ ์ ์๋ค.
์คํ ์ด๋ ํ๋ก์์ ๋ง๋ค๊ธฐ
DELIMITER $$
CREATE PROCEDURE ์คํ ์ด๋_ํ๋ก์์ _์ด๋ฆ( IN ๋๋ OUT ๋งค๊ฐ๋ณ์)
BEGIN
--SQL ํ๋ก๊ทธ๋๋ฐ ์ฝ๋--
END $$
DELIMITER;
โ ํ์ ํญ๋ชฉ์ผ๋ก ์คํ ์ด๋ ํ๋ก์์ ๋ฅผ ๋ฌถ์ด์ฃผ๋ ๊ธฐ๋ฅ์ ํ๋ค. $$๋ $ 1๊ฐ๋ง ์ฌ์ฉํด๋ ๋์ง๋ง ๋ช ํํ๊ฒ ํ์ํ๊ธฐ ์ํด 2๊ฐ๋ฅผ ์ฌ์ฉ. (##, %%, &&, // ๋ฑ์ผ๋ก ๋ฐ๊พธ๊ธฐ ๊ฐ๋ฅ)
โกDELIMITER์ '๊ตฌ๋ถ์'์ ์๋ฏธ. ;๋ก ๊ตฌ๋ถ์ ํ๊ฒ ๋๋ฉด ํ๋ก๊ทธ๋๋ฐ ์ฝ๋์ ์คํ ์ด๋ ํ๋ก์์ ์ค ๋ฌด์์ ๊ตฌ๋ถํ๋์ง ์๊ธฐ ์ด๋ ต๊ธฐ ๋๋ฌธ์ $$๋ก ํํ.
โข์คํ ์ด๋ ํ๋ก์์ ์ ์ด๋ฆ์ ์ ํ ๋ procedure๋๋ ์ด๋ฆ๋์ _proc์ ๋ถ์ธ๋ค.
์คํ ์ด๋ ํ๋ก์์ ์คํ
CALL ์คํ ์ด๋_ํ๋ก์์ _์ด๋ฆ(๋งค๊ฐ๋ณ์);
๋งค๊ฐ๋ณ์ ์ง์
IN ์
๋ ฅ_๋งค๊ฐ๋ณ์_์ด๋ฆ ๋ฐ์ดํฐ_ํ์
์คํ
CALL ํ๋ก์์ _์ด๋ฆ(์ ๋ฌ_๊ฐ);
์ถ๋ ฅ
OUT ์
๋ ฅ_๋งค๊ฐ๋ณ์_์ด๋ฆ ๋ฐ์ดํฐ_ํ์
์ถ๋ ฅ ๋งค๊ฐ๋ณ์๊ฐ ์๋ ์คํ ์ด๋ ํ๋ก์์ ๋ฅผ ์คํ
CALL ํ๋ก์์ _์ด๋ฆ(@๋ณ์๋ช
);
SELECT @๋ณ์๋ช
;
๊ธฐ๋ณธ๋ฏธ์
p. 363 - market_db์ ๊ณ ๊ฐ ํ ์ด๋ธ(member)์ ์ ๋ ฅ๋ ํ์์ ์ ๋ณด๊ฐ ๋ณ๊ฒฝ๋ ๋ ๋ณ๊ฒฝํ ์ฌ์ฉ์, ์๊ฐ, ๋ณ๊ฒฝ ์ ์ ๋ฐ์ดํฐ ๋ฑ์ ๊ธฐ๋กํ๋ ํธ๋ฆฌ๊ฑฐ ์์ฑํ๊ณ ์ธ์ฆ์ท
์ ํ๋ฏธ์
p. 402 - GUI ์์ฉ ํ๋ก๊ทธ๋จ ๋ง๋ค๊ณ ์ธ์ฆ์ท