[MySQL] 10. 스토어드 프로그램

Bnow·2023년 11월 20일

스토어드 프로시저란

MYSQL에서 제공되는 프로그래밍 기능
쿼리문의 집합. 어떠한 동작을 일괄 처리하기 위한 용도로 사용

  1. 스토어드 프로시저의 개요

    USE sqlDB;
    DROP PROCEDURE IF EXISTS userProc;
    DELIMITER $$
    CREATE PROCEDURE userProc()
    BEGIN
        SELECT * FROM userTBL;	-- 핵심 내용
    END
    DELIMITER ;
    
    CALL userProc();

    CALL 프로시저_이름()으로 호출

    매개변수의 사용

    IN 입력_매개변수_이름 데이터 형식
    OUT 출력_매개변수_이름 데이터 형식

    출력변수 사용법

    SELECT MAX(id) INTO outValue FROM testTBL;
  2. 스토어드 프로시저의 특징
    1) MySQL의 성능을 향상시킬 수 있다.
    2) 유지관리가 간편하다.
    3) 모듈식 프로그래밍이 가능하다.
    4) 보안을 강화할 수 있다.

  3. 스토어드 함수의 개요
    사용자가 직접 만들어서 사용하는 함수

    DELIMITER $$
    CREATE FUNCTION 스토어드 함수이름(파라미터)
    	RETURNS 반환형식
    BEGIN
    	프로그래밍 코딩
       RETURN 반환값;
    END $$
    DELIMETER ;
    SELECT 스토어드_함수이름();
  4. 트리거의 개요
    테이블에 삽입, 수정, 삭제 등의 작업(이벤트)이 발생 시에 자동으로 작동되는 개체

    DROP TRIGGER IF EXISTS testTrg;
    DELIMITER //
    CREATE TRIGGER testTrg	--트리거 이름
    	AFTER DELETE	--삭제 후 작동하도록 지정
       ON testTbl	--트리거를 부착할 테이블
       FOR EACH ROW	--각 행마다 적용
    BEGIN
    	SET @msg = '가수 그룹이 삭제됨';
    END
    DELIMITER ;
  5. 트리거의 종류

  • AFTER 트리거

  • BEFORE 트리거

    트리거가 생성하는 임시 테이블
    : INSERT, UPDATE, DELETE 작업이 수행되면 임시로 사용되는 시스템 테이블이 두 개 있는데, 'NEW'와 'OLD'이다.

  1. 기타 트리거에 관한 내용
  • 다중 트리거 : 하나의 테이블에 동일한 트리거가 여러개 부착되어 있는 것
  • 중첩 트리거 : 트리거가 또 다른 트리거를 작동하는 것
profile
행복한 코딩

0개의 댓글