[혼공S] 6주차_스토어드 프로시저

2025. 2. 23. 00:57혼자 공부하는 SQL

마지막까지 화이팅!!🥰

 

스토어드 프로시저(stored procedure) : MySQL에서 제공되는 프로그래밍 기능

DELIMITER $$
CREATE PROCEDURE 스토어드_프로시저_이름( IN 또는 OUT 매개변수 )
BEGIN
    // 프로그래밍 코드
END $$
DELIMITER;

 → 생성(기본 형식)

CALL 스토어드_프로시저_이름()

 → 호출 

DROP PROCEDURE 스토어드_프로시저_이름()

 → 삭제

 

입력 매개변수
...
CREATE PROCEDURE user_proc1(IN userName VARCHAR(10))
...
CALL user_proc1('에이핑크');
출력 매개변수
...
CREATE PROCEDURE user_proc3(IN txtValue CHAR(10), OUT outValue INT)
BEGIN
    INSERT INTO noTable VALUES(NULL, txtValue);
    SELECT MAX(id) INTO outValue FROM noTable;
END $$
...
CALL user_proc3('테스트1', @myValue);

 

 

스토어드 함수(stored function) : 사용자가 직접 만들어서 사용하는 함수

DELIMITER $$
CREATE PROCEDURE 스토어드_함수_이름( 매개변수 )     // 입력 매개변수만 사용(IN 없이)
    RETURNS 반환형식
BEGIN
    // 프로그래밍 코드
    RETURN 반환값;
END $$
DELIMITER;

SELECT 스토어드_함수_이름();     // SELECT 문에서 호출

DROP FUNCTION 스토어드_함수_이름;   // DROP FUNCTION 문으로 삭제

* 꼭 반환값이 있어야 함

 

커서(cursor) : 테이블에서 한 행씩 처리하기 위한 방식

 

트리거(trigger) : 사용자가 추가 작업을 잊어버리는 실수를 방지해줌. DML 문의 이벤트가 발생할 때 작동


오늘의 숙제

- market_db의 고객 테이블에 입력된 회원의 정보가 변경될 때 변경한 사용자, 시간, 변경 전의 데이터 등을 기록하는 트리거 작성하고 인증하기