๐ SQL & Database (07) - ํ๋ก์์ (stored procedure), DECLARE
ํ์ตํ๊ฒฝ : Windows, MariaDB, DBeaver
stored procedure
์ ์ฅ ํ๋ก์์
- ์์ฃผ ์ฌ์ฉํ๋ sql๋ฌธ์ ์ ์ฅํด๋๋ ์ฉ๋
ํจ์์ ๋น์ทํ ๋๋
์ฌ์ฉ๋ฐฉ๋ฒ ๋ฐ ์์(DBeaver)
procedure๋ฅผ ์์ฑํ๋ sql๋ฌธ์ ์ง์ ์์ฑํ๋ ๋ฐฉ๋ฒ๋ ์๊ณ , DBeaver์ ๊ฐ์ dbํด์ ์๋ ๊ธฐ๋ฅ์ผ๋ก ์ข ๋ ์ฝ๊ฒ ์์ฑํ๋ ๋ฐฉ๋ฒ๋ ์๋ค
์ง๊ธ ๋ด๊ฐ ์ฌ์ฉํ๊ณ ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ช ์ ํ์ ํด๋๋ฅผ ๋ณด๋ฉด procedure ํด๋๊ฐ ์์!
create new procedure ํด์ ๋ด๊ฐ ์ํ๋ ํ๋ก์์ ๋ช ์ผ๋ก ์ ํ๋ก์์ ๋ฅผ ์์ฑ
source๋ฉ๋ด์ ๋ค์ด๊ฐ๋ณด๋ฉด ํ๋ก์์ ๋ฅผ ์์ฑํ ์ ์๋ ์ฝ๋๊ฐ ํ ํ๋ฆฟ?์ฒ๋ผ ์๋์ผ๋ก ์์ฑ๋์ด์๋๋ฐ BEGIN๊ณผ END ์ฌ์ด์ ๋ด๊ฐ ์ํ๋ ์ฝ๋๋ฅผ ์์ฑํ๋ฉด ๋จ
์ ์ฅํ๊ณ ๋๋ฉด ํ๋ก์์ ์์ฑ์ด ์๋ฃ๋ ๊ฒ
์ด๊ฑธ ์ด๋ป๊ฒ ์ฌ์ฉํ๋.
CALLย ย ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ช . ํ๋ก์์ ๋ช ย ย
์์ฃผ ๊ฐ๋จ~
๊ทธ๋ฆฌ๊ณ
ํ๋ก์์ ์์์ ๋ณ์๋ฅผ ๋ง๋ค์ด์ ์ฌ์ฉํ ์๋ ์๋ค
DECLARE
- procedure์์์ ๋ณ์ ์์ฑํ ๋ ์ฌ์ฉ
procedure๊ฐ ์ข ๋ฃ๋๋ฉด ๋ณ์๋ ํจ๊ป ์ฌ๋ผ์ง๋ค. ์ง์ญ๋ณ์๋ผ๊ณ ๋ณด๋ฉด ๋จ
์ฌ์ฉ๋ฐฉ๋ฒ
CREATEย ย PROCEDUREย ย ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ช . ํ๋ก์์ ๋ช ย ย
BEGIN
ย ย ย ย ย ย ย ย DECLAREย ย ๋ณ์1ย ย INTย ย ;
ย ย ย ย ย ย ย ย DECLAREย ย ๋ณ์2ย ย VARCHAR(100)ย ย ;
ย ย ย ย ย ย ย ย DECLAREย ย ๋ณ์3ย ย INTย ย DEFAULTย ย ์ด๊ธฐ๊ฐย ย ;
ย ย ย ย ย ย ย ย SETย ย ๋ณ์1ย ย = ๋ฐ์ดํฐย ย ;
ย ย ย ย ย ย ย ย SELECTย ย ๋ณ์1, ๋ณ์2, ๋ณ์3ย ย ;
ENDย ย
์๊น ํ๋ก์์ ์์ฑํ ๋ ์ฒ๋ผ ์์ฑํ๋ฉด ๋๋๋ฐ DECLARE ๋ฌธ์ BEGIN ๋ฐ๋ก ๋ค์์ ๋ฃ์ด์ผ ํ๋ค
DEFAULT๋ ๋ณ์ ์ด๊ธฐ๊ฐ์ ์ค์ ํ ๋ ์ฌ์ฉ (์ ํ)
SET์ ๋ณ์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ฑฐ๋ ์์ ํ๊ณ ์ถ์ ๋ ์ฌ์ฉ์์