문서 읽는 데 35분 · 12강 · 2과목 · 소프트웨어 개발

SQL과 프로시저

목차 21
전체 59강 중 12강 · 2과목 · 소프트웨어 개발

10강·11강이 메모리 안에서 데이터를 다뤘다면, 12강은 DB 서버 안에 저장해두고 자동·반복 실행하는 SQL 프로그램(절차형 SQL)을 다룬다. 매 회차 확실한 점수밭은 셋 — 절차형 SQL 3종 매칭, 트리거 이벤트 SELECT 함정, 함수 vs 프로시저 RETURN 차이. 분량은 길어 보여도 출제 폭이 좁은 강이다.

핵심 암기: 절차형 SQL 3종 프트사 · PL/SQL 4부 구성 선실종예 · 트리거 이벤트 삽갱삭 · 트리거 시점·범위 BA행문 · 프로시저 매개변수 IN·OUT·INOUT · 함수=RETURN·프로시저=EXECUTE


절차형 SQL의 개요

일반 SQL vs 절차형 SQL ·개요·

[정의] 일반 SQL(DML) = 한 문장을 클라이언트가 보내면 DB가 한 번 처리하고 결과를 돌려주는 단발 명령. 절차형 SQL(Procedural SQL) = 변수 선언과 IF·LOOP·WHILE 같은 흐름 제어를 갖춘 SQL 묶음을 DB 서버에 미리 저장해두고 호출 한 번으로 실행하는 프로그램.

구분 일반 SQL (DML) 절차형 SQL
처리 단위 한 문장씩 여러 문장 + 흐름 제어 묶음
흐름 제어 없음 IF / LOOP / WHILE 가능
변수 선언 불가 DECLARE 로 가능
저장 위치 클라이언트가 매번 전송 DB 서버에 저장
대표 명령 SELECT·INSERT·UPDATE·DELETE PROCEDURE·TRIGGER·FUNCTION
컴파일 매번 파싱 미리 컴파일·저장

💡 비유 일반 SQL = 단답형 답안('합계 얼마?' 한 줄), 절차형 SQL = 서술형 답안지(조건 분기·반복·예외를 한 덩어리로). 🎯 빈출 '여러 SQL을 묶고 흐름 제어가 가능' 또는 'DB 서버에 미리 컴파일·저장' 키워드 → 절차형 SQL 즉답.

절차형 SQL 3종 — 프트사 ·분류·1순위·

[정의] 절차형 SQL은 딱 세 형태. 시험 매칭은 거의 이 3종 안에서 끝난다.

종류 한 줄 정의 호출 방식
로시저(Procedure) 자주 쓰는 SQL 묶음을 미리 저장 사용자가 명시적 호출(EXECUTE/CALL)
리거(Trigger) 특정 이벤트 발생 시 자동 실행 DBMS가 자동 호출(사용자 호출 X)
용자 정의 함수(UDF) 값을 받아 RETURN으로 결과를 돌려줌 SELECT 등 SQL 안에서 호출

🔑 암기 프트사로시저·리거·용자 정의 함수. 한 줄 회수: '부르면(프로시저)·알아서(트리거)·답을 돌려준다(함수).' ⚠️ 함정 인덱스·뷰·시퀀스는 절차형 SQL이 아님 — 검색 속도용 자료구조·가상 테이블 등 다른 DB 객체. 보기에 섞이면 그게 정답. 🎯 빈출 3종 매칭은 매 회차 단골. 프트사만 흔들리지 않으면 즉답. 📝 기출 '절차형 SQL 종류가 아닌 것?' → 인덱스.

PL/SQL 블록 4부 구성 — 선실종예 ·구성·

[정의] 프트사 3종 모두 안쪽 구조는 4부로 동일. 순서대로 한 덩어리로 흐른다.

키워드 역할
언부 DECLARE 변수·상수·예외 선언
행부 BEGIN ~ 실제 SQL + 흐름 제어
료부 END; 블록 종료
외부 EXCEPTION 오류 처리(선택)
SQL
DECLARE                    -- ① 선언부
    v_total NUMBER;
BEGIN                      -- ② 실행부
    SELECT SUM(amount) INTO v_total FROM sales;
EXCEPTION                  -- ④ 예외부(선택)
    WHEN NO_DATA_FOUND THEN NULL;
END;                       -- ③ 종료부

🔑 암기 선실종예언·행·료·외. 선언→실행→종료는 필수, 예외는 선택(실무는 거의 필수). ⚠️ 함정 '구성요소가 아닌 것?'에 인덱스부·뷰부·매개변수부 같은 가짜를 섞는다. 선실종예 4부에 없으면 정답. 🎯 빈출 4부 구성·순서 매칭 + '아닌 것' 소거형. 📝 기출 '구성요소 아닌 것?' → 인덱스부.


프로시저

프로시저 정의와 장점 ·프로시저·

[정의] 특정 기능의 SQL 묶음을 DB 서버에 저장해두고, 사용자가 명시적으로 호출(EXECUTE/CALL)해 실행하는 절차형 SQL. 핵심 두 단어 — 미리 저장 + 사용자 호출. 알아서 도는 트리거와 정반대.

장점 한 줄 설명
재사용성 한 번 작성, 어디서든 호출
성능 향상 미리 컴파일·저장 → 실행이 빠름
네트워크 부하 감소 SQL 전체 대신 호출 한 줄만 전송
보안 강화 테이블 직접 접근권 없이 실행권(GRANT EXECUTE)만 부여

💡 비유 미리 만들어둔 요리 레시피 — '실행!' 한 번이면 끝. 결과는 식탁(테이블)에 차려질 뿐, 레시피 자체가 값을 돌려주진 않는다. 🔑 즉답 '미리 컴파일·저장되어 호출만으로 실행' + 'EXECUTE/CALL' → 프로시저. 🎯 빈출 일괄 처리·야간 배치·여러 SQL을 한 트랜잭션으로 묶는 자리. (보안의 GRANT/REVOKE·트랜잭션의 COMMIT/ROLLBACK은 3과목 26·29강에서 자세히.)

프로시저 매개변수 — IN·OUT·INOUT ·프로시저·

[정의] 프로시저가 데이터를 주고받는 통로. 3종이다.

종류 방향 역할
IN 입력 전용 호출자 → 프로시저 (기본값)
OUT 출력 전용 프로시저 → 호출자 (결과 반환)
INOUT 양방향 입력+출력 겸용 (왕복)

🔑 암기 IN·OUT·INOUT — 들어오는 길·나가는 길·왕복. ⚠️ 함정 RETURN은 프로시저 매개변수가 아니라 함수 키워드. '매개변수 종류가 아닌 것?'에 RETURN을 섞는 게 단골 — 정답이 RETURN이다. 🎯 빈출 3종 매칭 + RETURN 끼워넣기 함정. 📝 기출 '프로시저 매개변수가 아닌 것?' → RETURN.


트리거

트리거 정의 — 프로시저와 정반대 ·트리거·

[정의] 테이블에 특정 이벤트(INSERT/UPDATE/DELETE)가 발생할 때 DBMS가 자동으로 실행하는 절차형 SQL. 사용자가 부르지 않아도 이벤트만 발생하면 작동한다.

비교 프로시저 트리거
실행 주체 사용자 (EXECUTE/CALL) DBMS 자동
호출 시점 원할 때 DML 이벤트 발생 시
매개변수 IN/OUT/INOUT 없음 (NEW/OLD 사용)

💡 비유 프로시저 = 부르면 일하는 요리사 / 트리거 = 부르지 않아도 문이 열리면 켜지는 현관 센서등. ⚠️ 함정 '트리거를 사용자가 EXECUTE/CALL로 호출' → 100% 함정. 트리거의 정체성은 DBMS 자동 실행. 🎯 빈출 '이벤트 발생 시 자동 실행' → 트리거 / '사용자가 호출' → 프로시저. 📝 기출 자동 실행 식별, '사용자 CALL 호출' 틀린 보기.

트리거 이벤트 3종 — 삽갱삭 ·트리거·1순위·

[정의] 트리거를 깨우는 이벤트는 DML 3대장 셋뿐.

이벤트 명령 데이터 변경?
INSERT
UPDATE
DELETE
(조회) SELECT ❌ 트리거 이벤트 아님

🔑 암기 삽갱삭입·신·제. DML 3대장이 그대로 트리거 이벤트. ⚠️ 함정 SELECT는 트리거 이벤트가 아니다 — 매 회차 함정 1순위. 단순 조회라 데이터를 바꾸지 않는다. '이벤트가 아닌 것?'에 SELECT가 보이면 거의 그게 정답. 🎯 빈출 '트리거 이벤트가 아닌 것?' 소거형. 한 트리거에 AFTER INSERT OR UPDATE OR DELETE로 여러 이벤트를 묶을 수도 있다. 📝 기출 '이벤트가 아닌 것?' → SELECT.

트리거 시점·범위 — BA행문 ·트리거·

[정의] 트리거는 '언제(시점)'와 '몇 번(범위)'을 골라 만든다. 두 축의 조합으로 동작이 정해진다.

종류 의미
시점 BEFORE 이벤트 직전 (입력값 검증·가공)
시점 AFTER 이벤트 직후 (로그 기록·후속 작업)
범위 FOR EACH ROW (행) 영향받는 행마다 실행 (100건 → 100번)
범위 FOR EACH STATEMENT (문) SQL 문장당 1번 (기본값)
SQL
CREATE TRIGGER 트리거명
{BEFORE | AFTER} {INSERT | UPDATE | DELETE} ON 테이블명
[FOR EACH ROW]
BEGIN
    -- 실행할 SQL
END;

🔑 암기 BA행문 — 시점 BEFORE/AFTER · 범위 (ROW)/(STATEMENT). 💡 비유 BEFORE = 입국 심사대(들어오기 전 검사) / AFTER = 출국 직후. FOR EACH ROW = 승객 한 명씩 / FOR EACH STATEMENT = 단체 한 번에. 🎯 빈출 시점 2종·범위 2종 매칭. 'FOR EACH ROW와 STATEMENT의 차이' 변형.

NEW·OLD 의사 레코드 ·트리거·

[정의] 트리거 안에서 방금 바뀐 행을 두 이름으로 참조 — NEW = 변경 후 값, OLD = 변경 전 값.

이름 의미 INSERT UPDATE DELETE
NEW 변경 후 값
OLD 변경 전 값

🔑 즉답 INSERT는 새로 생기니 OLD 없음 / DELETE는 사라지니 NEW 없음 / UPDATE만 둘 다 존재. 🌟 NEW/OLD는 간헐 출제 — '변경 후=NEW, 변경 전=OLD' + 'UPDATE만 둘 다'면 충분.


사용자 정의 함수

사용자 정의 함수 정의 ·함수·

[정의] 값을 입력받아 결과를 RETURN으로 반드시 돌려주는 절차형 SQL. SELECT 등 다른 SQL 안에서 호출 가능. 이 두 키워드(RETURN 필수 + SELECT 안 호출)가 정체성이다.

SQL
CREATE FUNCTION calc_discount(p_grade IN VARCHAR2) RETURN NUMBER
IS
    v_rate NUMBER;
BEGIN
    IF    p_grade = 'VIP'  THEN v_rate := 0.20;
    ELSIF p_grade = 'GOLD' THEN v_rate := 0.10;
    ELSE                        v_rate := 0.00;
    END IF;
    RETURN v_rate;     -- 반드시 값을 돌려준다
END;

함수는 SELECT 안에서 부품처럼 호출된다 — 프로시저로는 불가능한 자리:

SQL
SELECT price * (1 - calc_discount(grade)) AS final_price FROM cart;

💡 비유 자판기 — 동전(입력)을 넣으면 음료(결과)를 반드시 돌려준다. RETURN이 없으면 함수가 아니다. 🔑 즉답 'RETURN으로 값 반환' + 'SELECT 안에서 호출 가능' → 사용자 정의 함수. 💡 보충 뷰(View)는 SELECT '안'이 아니라 FROM 절의 테이블 위치에 들어가는 객체 — 함수와 호출 위치가 다르다.

함수 vs 프로시저 — 시험 1순위 ·함수·1순위·

[정의] 12강에서 가장 헷갈리게 내는 짝. 차이만 명확하면 100% 점수다.

구분 프로시저 사용자 정의 함수
RETURN 없음 (또는 OUT) 반드시 1개
SELECT 안 호출 불가능 가능
호출 방식 EXECUTE / CALL SELECT 등 SQL 안에서
매개변수 IN/OUT/INOUT IN 위주 (DBMS별)
주 용도 일괄 처리·작업 흐름 값 계산·조회 보조

🔑 암기 함수=RETURN, 프로시저=EXECUTE. 한 줄 회수: '함수는 답을 돌려주고 SELECT 안에 들어가고, 프로시저는 일을 해치우고 EXECUTE로만 부른다.' ⚠️ 함정 거꾸로 적은 보기 4종 — 모두 틀림:

함정 보기 바로잡기
프로시저가 RETURN 필수 RETURN 필수는 함수
프로시저가 SELECT 안 호출 가능 SELECT 안 호출은 함수
함수가 EXECUTE로 호출 EXECUTE는 프로시저
함수가 OUT 매개변수 보유 OUT은 프로시저 매개변수

🎯 빈출 매 회차. 'SELECT 안 호출=함수, RETURN 필수=함수, EXECUTE=프로시저' 세 단서면 즉답. 📝 기출 '함수 vs 프로시저 옳은 것?' → 함수는 SELECT 안에서 호출 가능.

프로시저 vs 트리거 vs 함수 종합 — 프트사 한 표 ·종합·1순위·

[정의] 절차형 SQL 매칭 문제를 한 장으로 끝내는 종합표. 12강 기출 다수가 이 표 안에서 풀린다.

구분 프로시저 트리거 사용자 정의 함수
호출 주체 사용자(EXECUTE/CALL) DBMS 자동 SELECT 등 SQL 안
호출 시점 원할 때 DML 이벤트 발생 시 값이 필요할 때
RETURN 없음 없음 반드시 1개
매개변수 IN/OUT/INOUT 없음(NEW/OLD) IN 위주
주 용도 일괄 처리·배치 자동화·무결성 보강 값 계산·재사용
한 줄 '부르면' '알아서' '답을 돌려준다'

[흐름] 보기 키워드로 3축 분별:

텍스트
보기에서 키워드 찾기
   │
   ├─ "EXECUTE / CALL / 사용자 호출"         프로시저
   ├─ "INSERT·UPDATE·DELETE 시 자동 실행"    트리거
   └─ "RETURN / SELECT 안에서 호출"           사용자 정의 함수

🔑 암기 '부르면·알아서·답을 돌려준다' 한 줄. 호출 주체·RETURN 유무·매개변수 3행이 변형 출제 1순위. 🎯 빈출 이 표의 줄 단위로 변형 출제된다. 외워두면 보기 3개가 즉시 분별된다.


예외처리와 커서

예외처리 — EXCEPTION ·예외·

[정의] 절차형 SQL 실행 중 발생하는 오류(예외)를 잡아 프로그램의 비정상 종료를 막는 메커니즘. 선실종예 4부의 마지막 부.

분류 정의 예시
시스템 정의 예외 DBMS가 미리 만든 표준 예외 NO_DATA_FOUND · TOO_MANY_ROWS · ZERO_DIVIDE · DUP_VAL_ON_INDEX
사용자 정의 예외 개발자가 직접 선언·발생 '잔액 부족'·'한도 초과' 등 비즈니스 규칙 위반(RAISE로 던짐)

💡 비유 자동차 에어백 — 평소엔 가만히, 오류가 나는 순간에만 자동 작동. 🔑 즉답 RAISE로 직접 발생 = 사용자 정의 예외 / DBMS가 자동 발생 = 시스템 정의 예외. 분류 기준은 '누가 던졌나'. 🎯 빈출 시스템 vs 사용자 정의 분류 매칭. EXCEPTION이 선실종예 4부에 속하는지 확인.

커서 — CURSOR와 처리 4단계 ·커서·

[정의] SELECT 결과를 한 행씩 순차적으로 가져와 처리하는 포인터. 일반 SELECT는 결과를 한꺼번에 받지만, 행마다 다른 처리가 필요할 때 커서를 쓴다.

종류 특징
묵시적 커서 DBMS가 자동 관리 (SELECT INTO·DML 실행 시)
명시적 커서 개발자가 직접 선언·관리 (여러 행을 한 줄씩 처리)

[흐름] 처리 4단계 — 순서가 시험 본진:

단계 키워드 역할
① 선언 DECLARE 커서에 SELECT 결과 묶기
② 열기 OPEN 결과 집합 실행·첫 행 앞에 포인터 두기
③ 꺼내기 FETCH 한 행씩 가져와 변수에 담기 (LOOP 안)
④ 닫기 CLOSE 자원 반납 (필수)

💡 비유 사진첩 — 목록 작성(DECLARE) → 펴기(OPEN) → 한 장씩 넘기기(FETCH) → 닫기(CLOSE). 🔑 즉답 순서 DECLARE → OPEN → FETCH → CLOSE. 'OPEN 다음?' → FETCH, '마지막?' → CLOSE. ⚠️ 함정 CLOSE를 빠뜨리면 커서 자원이 반납 안 돼 누수 발생. '커서 처리 후 반드시 할 일?' → CLOSE. 🎯 빈출 커서 자체는 깊게 안 나온다. 4단계 순서 매칭이 핵심.


기출 다지기

[기출 1 출제] 다음 중 절차형 SQL의 종류에 해당하지 않는 것은? (개념 분류·아닌 것 고르기)

  • ① 프로시저(Procedure)
  • ② 트리거(Trigger)
  • ③ 사용자 정의 함수(User Defined Function)
  • ④ 인덱스(Index)
정답 및 해설 보기

정답 ④

절차형 SQL은 프트사 세 종류뿐 — 프로시저·트리거·사용자 정의 함수. 인덱스는 검색 속도를 높이는 자료구조로, SQL 프로그램이 아니다.

선지 판정 근거
① 프로시저 오답 절차형 SQL — 사용자 호출(EXECUTE/CALL)
② 트리거 오답 절차형 SQL — DBMS 자동 실행
③ 사용자 정의 함수 오답 절차형 SQL — RETURN으로 값 반환
④ 인덱스 정답 검색 성능용 자료구조 — 절차형 SQL 아님

🔑 프트사에 없는 인덱스·뷰·시퀀스가 보이면 그게 정답.

[기출 2 출제] 다음 설명에 해당하는 절차형 SQL은? (설명 매칭·개념 식별)

텍스트
테이블에 INSERT, UPDATE, DELETE 같은 이벤트가 발생할 때
DBMS에 의해 자동으로 실행되는 SQL 프로그램이다.
  • ① 프로시저(Procedure)
  • ② 트리거(Trigger)
  • ③ 사용자 정의 함수(User Defined Function)
  • ④ 뷰(View)
정답 및 해설 보기

정답 ②

지문의 핵심 키워드 두 개 — 'INSERT/UPDATE/DELETE 이벤트(삽갱삭)' + 'DBMS가 자동 실행'. 이 교집합은 트리거 하나뿐이다.

선지 판정 근거
① 프로시저 오답 사용자가 EXECUTE/CALL로 호출 — 자동 아님
② 트리거 정답 삽갱삭 이벤트 + DBMS 자동 실행
③ 사용자 정의 함수 오답 SQL 안에서 값 반환용 호출 — 자동 아님
④ 뷰 오답 가상 테이블 — SQL 프로그램 아님

🔑 '이벤트 발생 시 자동 실행' 키워드 → 트리거 즉답.

[기출 3 출제] 프로시저와 트리거에 대한 설명 중 틀린 것은? (옳고 그름·틀린 설명 고르기)

  • ① 프로시저는 사용자가 EXECUTE 명령으로 호출한다
  • ② 트리거는 INSERT, UPDATE, DELETE 이벤트에 의해 자동 실행된다
  • ③ 프로시저는 DB 서버에 미리 컴파일되어 저장된다
  • ④ 트리거는 사용자가 CALL 명령으로 명시적으로 호출해야 실행된다
정답 및 해설 보기

정답 ④

트리거는 사용자가 직접 호출하지 않는다. INSERT/UPDATE/DELETE 이벤트가 발생할 때 DBMS가 자동으로 실행하는 것이 핵심이다.

선지 판정 근거
오답(맞는 설명) 프로시저는 EXECUTE로 호출
오답(맞는 설명) 트리거는 삽갱삭으로 자동 실행
오답(맞는 설명) 프로시저는 미리 컴파일·저장
정답(틀린 설명) 트리거는 자동 실행 — 사용자 CALL 호출 아님

🔑 '사용자가 호출하는 트리거' 보기는 100% 함정.

[기출 4 출제] 다음 중 트리거를 발생시키는 이벤트아닌 것은? (개념 분류·아닌 것 고르기)

  • ① INSERT
  • ② UPDATE
  • ③ DELETE
  • ④ SELECT
정답 및 해설 보기

정답 ④

트리거 이벤트는 삽갱삭 — 데이터를 변경하는 DML 3대장뿐이다. SELECT는 단순 조회라 데이터를 바꾸지 않으므로 트리거 이벤트가 아니다.

선지 판정 근거
① INSERT 오답 삽입 — 데이터 변경
② UPDATE 오답 갱신 — 데이터 변경
③ DELETE 오답 삭제 — 데이터 변경
④ SELECT 정답 단순 조회 — 데이터 변경 없음

🔑 보기에 SELECT가 있으면 거의 그게 정답. 매 회차 함정 1순위.

[기출 5 출제] 절차형 SQL의 구성 요소에 해당하지 않는 것은? (개념 분류·아닌 것 고르기)

  • ① 선언부(DECLARE)
  • ② 실행부(BEGIN ~ END)
  • ③ 예외부(EXCEPTION)
  • ④ 인덱스부(INDEX)
정답 및 해설 보기

정답 ④

절차형 SQL의 구성은 선실종예 4부 — 선언부·실행부·종료부·예외부. 인덱스는 검색 성능 향상용 자료구조로 절차형 SQL 구성과 무관하다.

선지 판정 근거
① 선언부 오답 DECLARE — 변수·상수 선언
② 실행부 오답 BEGIN~END — 실제 SQL·흐름 제어
③ 예외부 오답 EXCEPTION — 오류 처리(선택)
④ 인덱스부 정답 검색용 자료구조 — 구성 요소 아님

🔑 '매개변수부'·'커서부' 같은 가짜가 섞여도 선실종예 4부에 있는지만 확인.

[기출 6 출제] 다음 중 프로시저 매개변수의 종류에 해당하지 않는 것은? (개념 분류·아닌 것 고르기)

  • ① IN
  • ② OUT
  • ③ INOUT
  • ④ RETURN
정답 및 해설 보기

정답 ④

프로시저 매개변수는 IN·OUT·INOUT 3종(들어오는 길·나가는 길·왕복). RETURN은 사용자 정의 함수에서 결과값을 돌려줄 때 쓰는 키워드로, 프로시저 매개변수가 아니다.

선지 판정 근거
① IN 오답 입력 전용 매개변수
② OUT 오답 출력 전용 매개변수
③ INOUT 오답 양방향 매개변수
④ RETURN 정답 함수 키워드 — 프로시저 매개변수 아님

🔑 IN/OUT/INOUT은 프로시저, RETURN은 함수.

[기출 7 출제] 사용자 정의 함수와 프로시저의 차이에 대한 설명 중 옳은 것은? (옳고 그름·옳은 설명 고르기)

  • ① 프로시저는 RETURN으로 반드시 값을 돌려줘야 한다
  • ② 사용자 정의 함수는 SELECT 문 안에서 호출이 가능하다
  • ③ 프로시저는 SELECT 문 안에서 직접 호출할 수 있다
  • ④ 사용자 정의 함수는 EXECUTE 명령으로 호출한다
정답 및 해설 보기

정답 ②

함수의 정체성은 'RETURN 필수 + SELECT 안에서 호출 가능'이다. ①③④는 함수와 프로시저의 성질을 거꾸로 적은 함정 보기.

선지 판정 근거
오답 RETURN 필수는 함수(프로시저는 의무 없음)
정답 함수는 SELECT 안에서 호출 가능
오답 프로시저는 SELECT 안 호출 불가(EXECUTE/CALL만)
오답 EXECUTE는 프로시저용 호출 명령

🔑 'SELECT 안 호출=함수, RETURN 필수=함수, EXECUTE=프로시저' 세 단서면 즉답.


한 장 요약

영역 핵심 암기팁
일반 vs 절차형 단발 명령 vs 흐름 제어 + DB 서버 저장 (미리 컴파일·저장=절차형)
절차형 SQL 3종 프로시저(사용자 호출)·트리거(자동)·함수(RETURN) 프트사
PL/SQL 4부 선언(DECLARE)·실행(BEGIN~END)·종료(END;)·예외(EXCEPTION) 선실종예
객체 핵심 암기팁
프로시저 EXECUTE/CALL 호출 · 미리 저장 · 일괄 배치 (매개변수 IN·OUT·INOUT)
프로시저 매개변수 입력·출력·왕복 (RETURN은 함수 키워드) IN·OUT·INOUT
트리거 이벤트 INSERT·UPDATE·DELETE (SELECT는 아님) 삽갱삭
트리거 시점·범위 BEFORE/AFTER · 행(ROW)/문(STATEMENT) BA행문
함수 vs 프로시저 함수=RETURN+SELECT 안 호출 / 프로시저=EXECUTE 함수=RETURN, 프로시저=EXECUTE
커서 4단계 선언→열기→꺼내기→닫기 DECLARE→OPEN→FETCH→CLOSE

🎯 합격 한 끗: 가장 잦은 세 유형 = 절차형 SQL 3종 매칭(프트사) + 트리거 이벤트 SELECT 함정(삽갱삭) + 함수 vs 프로시저 RETURN 차이. 매 회차 출제의 80%. 단골 함정 3종 = '트리거를 사용자가 호출'(→DBMS 자동), 'SELECT가 트리거 이벤트'(→삽갱삭만), '프로시저가 RETURN 필수'(→함수). 다섯 두음(프트사·선실종예·삽갱삭·BA행문·IN·OUT·INOUT) + 함수 vs 프로시저 한 줄이면 12강은 거뜬.

전체 목록 필기 이론

합격까지

정처기, 혼자 막막하다면

초개인화 학습앱 Klue와 에듀윌 온라인강의로 합격까지 이어가세요.