절차형 sql은 c, java 등의 프로그래밍 언어와 같이 연속적인 실행이나, 분기, 반복 등의 제어가 가능한 sql을 의미한다.
절차형 sql은 일반적인 프로그래밍 언어에 비해 효율은 떨어지지만 단일 sql문장으로 처리하기 어려운 연속적인 작업들을 처리하는데 적합하다.
절차형 sql은 dbms 엔진에서 직접 실행되기 때문에 입/출력 패킷이 적은 편이다.
begin ~ end 형식으로 작성되는 블록 구조로 되어 있기 때문에 기능별 모듈화가 가능하다.
절차형 sql의 종류
프로시저(procedure) : 특정 기능을 수행하는 일종의 트랜잭션 언어로, 호출을 통해 실행되어 미리 저장해 놓은 sql작업을 수행한다.
트리거(trigger) : 데이터 입력, 갱신, 삭제 등의 이벤트가 발생할 때마다 관련 작업이 자동으로 수행한다.
사용자 정의 함수(function) : 프로시저와 유사하게 sql을 사용하여 일련의 작업을 연속적으로 처리하며, 종료 시 예약어 return을 사용하여 처리 결과를 단일 값으로 반환한다.
절차형 sql은 디버깅을 통해 기능의 적합성 여부를 검증하고, 실행을 통해 결과를 확인하는 테스트 과정을 수행한다.
테스트 전에 생성을 통해 구문 오류(syntax error)나 참조 오류의 존재 여부를 확인한다.
많은 코드로 구성된 절차형 sql의 특성상 오류 및 경고 메시지가 상세히 출력되지 않으므로 show 명령어를 통해 내용을 확인하고 문제를 수정한다.
정상적인 sql문은 디버깅을 통해 로직을 검증하고, 결과를 통해 최종적으로 확인한다.
디버깅은 실제로 데이터베이스에 변화를 줄 수 있는 삽입 및 변경관련 sql문을 주석으로 처리하고, 출력문을 이용하여 화면에 출력하여 확인한다.