SQL 프로그래밍

SQL 프로그래밍이란 단순한 SELECT, INSERT, UPDATE, DELETE와 같은 기본 SQL 문장을 넘어서, 절차적 로직과 구조를 가진 프로그래밍 방식으로 SQL을 사용하는 것을 말합니다.

MariaDB나 MySQL에서는 이를 위해 SQL/PSM (Persistent Stored Modules) 표준을 따르며, 스토어드 프로시저, 함수, 커서, 조건문, 반복문, 예외 처리 등을 사용할 수 있습니다.

SQL 프로그래밍으로 할 수 있는 것들

기능설명
스토어드 프로시저자주 사용하는 SQL 명령을 묶어서 저장
스토어드 함수반환값이 있는 함수 형태의 SQL 코드
커서SELECT 결과를 행 단위로 처리
조건문 (IF, CASE)조건에 따라 분기
반복문 (LOOP, WHILE, REPEAT)반복 작업 처리
예외 처리 (HANDLER)오류 상황에 대한 처리

SQL 프로그래밍 예시 구조 (MariaDB 기준)

sql>

DELIMITER //

CREATE PROCEDURE process_data()

BEGIN

    DECLARE done INT DEFAULT FALSE;

    DECLARE val INT;

    DECLARE cur CURSOR FOR SELECT number FROM numbers;

    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

    OPEN cur;

    read_loop: LOOP

        FETCH cur INTO val;

        IF done THEN

            LEAVE read_loop;

        END IF;

        — 비즈니스 로직: 예를 들어 짝수만 로그로 저장

        IF val % 2 = 0 THEN

            INSERT INTO logs (message) VALUES (CONCAT(‘Even number: ‘, val));

        END IF;

    END LOOP;

    CLOSE cur;

END //

DELIMITER ;

주요 요소 요약

요소설명
DECLARE변수, 커서, 핸들러 등 선언
BEGIN … END블록 구조로 로직 감싸기
IF / CASE조건문
LOOP / WHILE / REPEAT반복문
HANDLER예외 처리
CALL프로시저 실행: CALL process_data();

SQL 프로그래밍을 사용하는 이유

  • 💾 비즈니스 로직을 DB로 옮겨 처리 (클라이언트 로직 간소화)
  • 🔁 복잡한 반복 처리를 서버에서 직접 실행
  • 🔐 보안 및 접근 제어 강화 (직접 테이블 접근 없이 작업 수행)
  • ⚙️ 성능 향상 (네트워크 왕복 없이 일괄 처리)
위로 스크롤