본문 바로가기

자격증고나리/⚽ SQLD 슈웃

절차적/비절차적 DML의 차이

비절차적 DML

SELECT first_name, last_name FROM employees WHERE department_id = 101;

 

익숙하게 써왔던 sql이 비절차적 dml에 해당한다

가져올 데이터만 명시하고 어떻게 가져올지 그 처리방법은 시스템이 알아서 함

 

절차적 DML

DECLARE
   v_first_name employees.first_name%TYPE;
   v_last_name employees.last_name%TYPE;
BEGIN
   FOR rec IN (SELECT first_name, last_name FROM employees WHERE department_id = 101) LOOP
      v_first_name := rec.first_name;
      v_last_name := rec.last_name;
      -- 이후 로직을 작성하여 데이터 처리
   END LOOP;
END;

# 코드설명

  1. 특정 부서(department_id = 101)에 속한 직원의 first_name과 last_name을 가져오는 쿼리를 실행
  2. 가져온 데이터를 반복문을 사용하여 처리하기 위해 변수에 할당
  3. 이후에 추가적인 로직을 작성하여 데이터를 처리

절차적 dml은 비절차적 dml과 달리 데이터 조작 과정을 개발자가 명시적으로 제어하고 작성해야함

보통 PL/SQL(오라클), T-SQL(SQL Server) 등이 이에 해당함