비절차적 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;
# 코드설명
- 특정 부서(department_id = 101)에 속한 직원의 first_name과 last_name을 가져오는 쿼리를 실행
- 가져온 데이터를 반복문을 사용하여 처리하기 위해 변수에 할당
- 이후에 추가적인 로직을 작성하여 데이터를 처리
절차적 dml은 비절차적 dml과 달리 데이터 조작 과정을 개발자가 명시적으로 제어하고 작성해야함
보통 PL/SQL(오라클), T-SQL(SQL Server) 등이 이에 해당함
'자격증고나리 > ⚽ SQLD 슈웃' 카테고리의 다른 글
[SQL] 상위 n개를 선택하는 윈도우 함수 (LIMIT,TOP,ROWNUM, FETCH FRIST) (0) | 2023.09.07 |
---|---|
[SQL] NOT EXISTS (1) | 2023.09.06 |
[SQL] 데이터베이스의 JOIN (0) | 2023.09.06 |
데이터베이스의 함수 (1) | 2023.09.05 |
무결성과 제약조건 (0) | 2023.09.04 |