스토어드

원래벌레·2022년 11월 14일
0
post-custom-banner

🌞 스토어드 프로시저

  • 쿼리 문의 집합으로 어떠한 동작을 일괄 처리하기 위한 용도로 사용된다.

  • CALL 프로시저_이름() 으로 프로시저 호출 가능함


🌼 기본형식

DELIMITER $$
CREATE PROCEDURE 스토어드 프로시저이름( IN 또는 OUT 파라미터 )
BEGIN
	
    이 부분에 SQL 프로그래밍 코딩..
    
END $$
DELIMITER ;
CALL 스토어드 프로시저이름();

DELIMITER : DELIMITER는 문장의 끝을 나타내는 부분으로 ';'을 뜻한다.

DELIMITER $$ : ';'인 DELIMITER를 '$$'로 바꾼다. 왜 바꾸냐면 스토어드 프로시저에는 여러 개의 ';'를 사용하는데 이를 문장의 끝으로 인식하지 못하게 하기 위해서 이다.

BEGIN ~ END $$ : $$는 DELIMITER BEGIN-END로 문장들을 묶는다.

DELIMITER ; : DELIMITER를 다시 ';'로 바꾼다.


🌼 스토어드 프로시저의 수정, 삭제

  • 수정 : ALTER PROCEDURE
  • 삭제 : DROP PROCEDURE

🌼 매개변수의 사용

  • IN, OUT의 사용

🌼 IF-ELSE문 사용


🌼 CASE문 사용


🌼 WHILE문 사용


🌼 오류처리(DECLARE ~ HANDLER)


🌼 특징

  • MYSQL의 성능 향상 : 클라이언트에서 서버로 긴 쿼리가 아니라 짧은 프로시저 내용만 전송함 ( 네트워크의 부하가 줄어들면서 MYSQL의 성능이 향상된다.)

  • 유지관리가 간편 : 응용 프로그램에서는 프로시저만 호출한다. 데이터 베이스 단에서 관련된 스토어드 프로시저의 내용을 일관되게 수정/유지보수 한다.

  • 모듈식 프로그래밍 가능 : 언제든지 실행이 가능하고 편리한 관리가 가능하다. 모듈식 프로그래밍 언어와 동일한 장점을 가지고 있다.

  • 보안 강화에 편리 : 스토어드 프로시저에만 접근 권한을 부여하여 DB가 안전해진다.

🌞 스토어드 함수

DELIMITER $$
CREATE FUNCTION 스토어드 함수이름(파라미터)
	RETURNS 반환형식
BEGIN
	이 부분에 프로그래밍 코딩..
    RETURN 반환값;
END $$
DELIMITER ;
SELECT 스토어드_함수이름();

🌞 커서

  • 응용프로그램에서 데이터베이스에서 테이블을 가져왔다. 이 가져온 테이블이 100행일 때 20행씩 나눠서 보여주기 위해서는 어떠한 처리를 해야 할 것이다. 이 처리를 할 때는 한 행씩 처리를 해야한다. 이 때 이 한 행을 가리키는 것이 커서이다.

🌼 커서의 처리순서

  • 스토어드 프로시저에서 사용하는 예
  • fetch : 한줄을 가져오는 것

🌞 트리거

  • 테이블에 DML문(Insert, Update, Delete 등) 이벤트가 발생 할 때 작동한다.
    (DDL로는 불가)

  • 테이블에 부착되는 프로그램 코드이다.

  • 직접 실행이 불가하며 테이블의 이벤트가 일어나야면 실행이 된다.

  • IN, OUT 매개 변수를 사용 할 수 없다.


🌼 트리거의 종류

AFTER 트리거 : 일단 DML 작업을 한 이후에 트리거를 실행함

BEFORE 트리거 : DML 작업을 하기 전 트리거를 실행하고 작업을 함


🌼 after 트리거 실습


🌞 트리거의 사용

  • 트리거가 생성하는 임시 테이블 DML 작업이 수행되면 임시 사용 시스템테이블이 생성된다. 이름은 NEW와 OLD이다.

🌞 기타트리거

  • 다중 트리거 : 하나의 테이블에 동일한 트리거가 여러 개 부착되어 있는 것

  • 집중 트리거 : 트리거가 또 다른 트리거를 작동시키는 것

profile
학습한 내용을 담은 블로그 입니다.
post-custom-banner

0개의 댓글