π― μ μ₯ νλ‘μμ (Stored Procedure)
μ μ₯ νλ‘μμ (Stored Procedure)λ λ°μ΄ν°λ² μ΄μ€ λ΄μ 미리 μμ±λ SQL μ½λ λΈλ‘μΌλ‘, μΌλ ¨μ μμ μ μννκΈ° μν νλ‘κ·Έλ¨μ λλ€. μ μ₯ νλ‘μμ λ λ°λ³΅μ μΌλ‘ μνλλ μμ μ΄λ 볡μ‘ν μμ μ μνν λ μ μ©νλ©°, μ€ν μλμ 보μμ±μ ν₯μμν¬ μ μμ΅λλ€.
μ μ₯ νλ‘μμ (Stored Procedure) μ¬μ©λ²
DELIMITER $$
CREATE PROCEDURE `get_employee` (
IN employee_id INT
)
BEGIN
SELECT * FROM employees WHERE id = employee_id;
END $$
DELIMITER ;
μμ μμ μμλ get_employee
λΌλ μ΄λ¦μ μ μ₯ νλ‘μμ λ₯Ό μμ±νκ³ μμ΅λλ€. μ΄ μ μ₯ νλ‘μμ λ employee_id
λΌλ μ
λ ₯ 맀κ°λ³μλ₯Ό λ°μ ν΄λΉνλ μ§μ μ 보λ₯Ό μ‘°ννλ SQLμ μ€νν©λλ€.
μ΄λ κ² μμ±λ μ μ₯ νλ‘μμ λ λ€μκ³Ό κ°μ΄ νΈμΆν μ μμ΅λλ€.
CALL get_employee(1);
μμ μμ μμλ employee_id
μ 1
μ μ
λ ₯νμ¬ employees
ν
μ΄λΈμμ idκ° 1μΈ μ§μ μ 보λ₯Ό μ‘°ννκ³ μμ΅λλ€.
μ μ₯ νλ‘μμ λ λ°μ΄ν°λ² μ΄μ€ λ΄μμ μ¬λ¬ λ² νΈμΆλλ―λ‘, μ€ν μλμ 보μμ±μ ν₯μμν¬ μ μμ΅λλ€. λν μ μ₯ νλ‘μμ λ λ°μ΄ν°λ² μ΄μ€ λ΄λΆμμ μ€νλλ―λ‘, λ€νΈμν¬ λμνμ μ€μ΄κ³ λ°μ΄ν° μ ν¨μ±μ 보μ₯ν μ μμ΅λλ€.
μ μ₯ νλ‘μμ (Stored Procedure)μ μ₯λ¨μ
βοΈ νλ‘μμ μ μ₯μ
- μ±λ₯
- μ μ₯ νλ‘μμ λ μ»΄νμΌλ ννλ‘ λ°μ΄ν°λ² μ΄μ€ λ΄μ μ μ₯λμ΄ μκΈ° λλ¬Έμ, μΌλ° SQL μΏΌλ¦¬λ³΄λ€ λ λΉ λ₯΄κ² μ€νλ©λλ€. νΉν, λ°λ³΅μ μΌλ‘ μνλλ μμ μ μνν λ μ±λ₯μ΄ ν₯μλ©λλ€.
- 보μμ±
- μ μ₯ νλ‘μμ λ λ°μ΄ν°λ² μ΄μ€ λ΄λΆμμ μ€νλλ―λ‘, μΈλΆμμ μ§μ SQL 쿼리λ₯Ό μ€ννλ κ²λ³΄λ€ 보μμ±μ΄ λμ΅λλ€. λν μ μ₯ νλ‘μμ λ₯Ό μ¬μ©νμ¬ μ κ·Ό κΆνμ κ΄λ¦¬ν μ μμ΅λλ€.
- μ½λμ μ¬μ¬μ©μ±
- μ μ₯ νλ‘μμ λ λ°μ΄ν°λ² μ΄μ€ λ΄λΆμ μ μ₯λμ΄ μμΌλ―λ‘, λ€λ₯Έ μ΄ν리μΌμ΄μ μμλ μ½κ² μ¬μ¬μ©ν μ μμ΅λλ€.
- μ μ§ λ³΄μμ±
- μ μ₯ νλ‘μμ λ₯Ό μ¬μ©νλ©΄ μ½λλ₯Ό ν κ³³μμ κ΄λ¦¬ν μ μμΌλ―λ‘, μ μ§ λ³΄μμ±μ΄ ν₯μλ©λλ€.
ποΈ νλ‘μμ μ λ¨μ
- νμ΅ λΉμ©
- μ μ₯ νλ‘μμ λ λ³λμ μΈμ΄λ‘ μμ±λκΈ° λλ¬Έμ, SQL 쿼리λ₯Ό μμ±νλ κ²λ³΄λ€ νμ΅ λΉμ©μ΄ λμ μ μμ΅λλ€.
- μ μ°μ±
- μ μ₯ νλ‘μμ λ λ°μ΄ν°λ² μ΄μ€ λ΄μμλ§ μ€νλ μ μμΌλ―λ‘, λ€λ₯Έ νκ²½μμ μ¬μ©νκΈ° μ΄λ €μΈ μ μμ΅λλ€.
- λλ²κΉ
- μ μ₯ νλ‘μμ λ₯Ό λλ²κΉ νκΈ° μ΄λ ΅μ΅λλ€. μΌλ°μ μΌλ‘ μ μ₯ νλ‘μμ λ₯Ό λλ²κΉ νκΈ° μν΄μλ λ³λμ λꡬλ₯Ό μ¬μ©ν΄μΌ ν©λλ€.
- μ μ§λ³΄μ λ° κ°λ°μ μμ‘΄μ±
- μ μ₯ νλ‘μμ λ₯Ό μμ±ν κ°λ°μκ° μ‘°μ§μ λ λκ±°λ, μ 무λ₯Ό λ³κ²½νλ©΄ μ μ₯ νλ‘μμ μ μ μ§λ³΄μλ λ³κ²½μ΄ μ΄λ ΅μ΅λλ€.
'Database' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Database] λ λμ€(Redis) (0) | 2023.03.26 |
---|---|
[Database] νΈλμμ μ 격리 μμ€(Isolation Level) (0) | 2023.03.26 |
[Database] νΈλμμ (Transaction) (1) | 2023.03.26 |
[Database] μΈλ±μ€(Index) (0) | 2023.03.26 |
[Database] μ΄μ(Anomaly) (0) | 2023.03.26 |