[혼공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의 고객 테이블에 입력된 회원의 정보가 변경될 때 변경한 사용자, 시간, 변경 전의 데이터 등을 기록하는 트리거 작성하고 인증하기
'혼자 공부하는 SQL' 카테고리의 다른 글
[혼공S] 회고 타임 (0) | 2025.02.23 |
---|---|
[혼공S] 5주차_인덱스 (0) | 2025.02.16 |
[혼공S] 4주차_제약조건, 뷰 (0) | 2025.02.09 |
[혼공S] 3주차_데이터 타입, 조인, 조건문, 동적 SQL (0) | 2025.01.26 |
[혼공S] 2주차_문법 (0) | 2025.01.19 |