🗄️데이터베이스 구축반드시
절차형 SQL — 프로시저·함수·트리거
SQL 에 조건과 반복을 넣어 하나의 덩어리로 저장해 둔다. 트리거는 부르지 않아도 저절로 돈다.
프로시저(Stored Procedure)는 일련의 SQL 을 묶어 이름 붙여 저장해 둔 것이다. CALL 로 부르며 값을 돌려주지 않아도 된다.
사용자 정의 함수(User Defined Function)는 프로시저와 비슷하지만 반드시 값을 하나 돌려주며, SELECT 문 안에서 쓸 수 있다.
트리거(Trigger)는 INSERT·UPDATE·DELETE 가 일어날 때 저절로 도는 것이다. 직접 부르지 않는다는 점이 프로시저와 가장 다르다.
절차형 SQL 의 구성: DECLARE(선언부) → BEGIN/END(실행부) → EXCEPTION(예외부).
커서(Cursor)는 여러 행을 한 줄씩 훑기 위한 것이다. DECLARE(선언) → OPEN(열기) → FETCH(한 줄씩 가져오기) → CLOSE(닫기) 순으로 쓴다. 선언이 첫 단계다 — 시험은 OPEN 부터 시작하는 보기를 섞어 낸다.
외울 것
프로시저CALL 로 부른다. 반환값이 없어도 된다
함수반드시 값을 하나 돌려준다
트리거이벤트가 나면 저절로 돈다
커서DECLARE → OPEN → FETCH → CLOSE
바꿔 내는 짝
프로시저↔트리거
프로시저는 사람이 CALL 로 부르고, 트리거는 테이블에 변화가 생기면 저절로 돈다.
시험에는 이렇게
프로시저·함수·트리거를 바꿔 내는 문제가 가장 흔하다. "직접 호출하지 않는다"는 트리거, "반드시 값을 반환한다"는 함수다.
실기에도 나오는 개념입니다. 실기는 고르는 것이 아니라 적으므로 용어를 글자 그대로 외워 두세요.
확인 문제
이 개념은 실기에도 3문항 나옵니다. 고르는 것과 적는 것은 다르니 실기 탭에서 손으로도 한 번 적어 보세요.