본문 바로가기
정보처리기사 필기 총정리/3과목: 데이터베이스 구축

SQL 활용 ★★

by 함께 공부해요 2020. 10. 3.
p.476~484

1) 절차형 SQL

- C, JAVA 등의 프로그래밍 언어와 같이 연속적인 실행이나 분기, 반복 등의 제어가 가능한 SQL

- 일반적인 프로그래밍 언어에 비해 효율이 떨어지지만, 연속적인 작업 처리 적합

- BEGIN ~ END 형식으로 작성되는 블록(Block) 구조로 기능별 모듈화 가능

 

 

2) 프로시저(Procedure)    #디비컨SET

- 호출을 통해 실행되어 미리 저장해 놓은 SQL 작업 수행, 처리 결과는 한 개 이상의 값 혹은 반환을 아예 하지 않음

- 시스템의 일일 마감 작업, 일괄(Batch) 작업 등에 주로 사용

 

DECLARE(필수): 프로시저의 명칭, 변수, 인수, 데이터 타입을 정의하는 언부

BEGIN(필수): 프로시저의 시작을 의미, 행부

   CONTROL: 조건문 또는 반복문이 삽입되어 순차적으로 처리됨

   SQL: DML, DCL이 삽입되어 데이터 관리를 위한 작업 수행 ★

   EXCEPTION: BEGIN ~ END 안의 구문 실행 시 외가 발생하면 이를 처리

   TRANSACTION: 수행된 데이터 작업들을 DB에 적용할지 말지 결정하는 처리부

END(필수): 프로시저의 종료를 의미, BEGIN/END는 함께 다님

 

CREATE [OR REPLACE] PROCEDURE 프로시저명(파라미터) [지역변수 선언]

    BEGIN

        프로시저 BODY;

    END;

 * OR REPLACE: 선택적인 예약어, 동일한 프로시저 이름이 이미 존재하는 경우 기존의 프로시저를 대체할 수 있음

 

EXECUTE, EXEC, CALL 프로시저명; / DROP PROCEDURE 프로시저명;

 

 

3) 트리거(Trigger) __ 3-2, 201, 2회 기출문제    #디이비컨SE

- 삽입, 갱신, 삭제 등의 이벤트가 발생할 때마다 관력 작업을 자동 수행

- 데이터베이스에 저장되며, 데이터 변경 및 무결성 유지, 로그 메시지 출력 등의 목적으로 사용됨

- DCL(데이터 제어어)을 사용할 수 없으며, DCL이 포함된 프로시저나 함수를 호출하는 경우에도 오류 발생

- 트리거에 오류가 있는 경우 트리거가 처리하는 데이터에도 영향을 미치므로 트리거를 생성할 때 세심한 주의가 필요

 

DECLARE(필수): 트리거의 명칭, 변수 및 상수, 데이터 타입을 정의하는 언부

EVENT(필수): 트리거가 실행되는 조건을 명시

BEGIN(필수): 트리거의 시작을 의미, 행부

   CONTROL: 조건문 또는 반복문이 삽입되어 순차적으로 처리됨

   SQL: DML문이 삽입되어 데이터 관리를 위한 작업 수행 ★

   EXCEPTION: BEGIN ~ END 안의 구문 실행 시 외가 발생하면 이를 처리

END(필수): 트리거의 종료를 의미, BEGIN/END는 함께 다님

 

CREATE [OR REPLACE] TRIGGER 트리거명 [동작시기 옵션][동작 옵션] ON 테이블명

          REFERENCING[NEW | OLD] AS 테이블명

          FOR EACH ROW [WHEN 조건식]

    BEGIN

          트리거 BODY;

    END;

* 동작시기 옵션: AFTER(테이블이 변경된 후 트리거 실행), BEFORE(변경되기 전 실행)

* NEW | OLD: NEW(추가되거나 수정에 참여할 테이블), OLD(수정되거나 삭제 전 테이블)

* FOR EACH ROW: 각 튜플마다 트리거 적용

 

DROP TRIGGER 트리거명;

 

 

3) 사용자 정의 함수 __ 3-5    #디비컨SER

- 프로시저와 유사하게 SQL을 사용해 일련의 작업을 연속적으로 처리

- 종료 시 예약어 RETURN을 사용해 처리 결과를 단일값으로 반환

- DML(SELECT, INSERT, DELETE, UPDATE)호출에 의해 실행

- RETURN을 통해 값을 반환해, 출력(OUT) 파라미터가 없음

- INSERT, DELETE, UPDATE로 테이블 조작은 할 수 없고, SELECT로 조회만 할 수 있음

- 프로시저를 호출해 사용할 수 없음

구분

프로시저

사용자 정의 함수

반환값

없거나 1개 이상 가능

1(단일값)

파라미터

, 출력 가능(IN, OUT)

입력만 가능(IN)

사용 가능 명령문

DML, DCL

SELECT

호출

프로시저, 사용자 정의 함수

사용자 정의 함수

사용 방법

실행문

DML에 포함해서 사용

DECLARE(필수): 사용자 정의 함수의 명칭, 변수, 인수, 데이터 타입을 정의하는 언부

BEGIN(필수): 사용자 정의 함수의 시작을 의미, 행부

   CONTROL: 조건문 또는 반복문이 삽입되어 순차적으로 처리됨

   SQL: SELECT문이 삽입되어 데이터 관리를 위한 작업 수행 ★

   EXCEPTION: BEGIN ~ END 안의 구문 실행 시 외가 발생하면 이를 처리

   RETURN(필수): 호출 프로그램에 반활할 값이나 변수를 정의 ★

END(필수): 사용자 정의 함수의 종료를 의미, BEGIN/END는 함께 다님

 

CREATE [OR REPLACE] FUNCTION 사용자 정의 함수명(파라미터) [지역변수 선언]

    BEGIN

          사용자 정의 함수 BODY;

          RETURN 반환값;

    END;

 

 

wook-2124.tistory.com/275

 

2020 정보처리기사 필기 총정리 (시나공, 수제비)

본 정리 글은 시나공과 수제비 필기책의 내용을 압축 요약하여 작성했기 때문에 내용이 부족할 수 있습니다. 자세한 내용과 출제 예상문제 및 기출문제를 공부하기 위해서 책을 꼭 참고하시고,

wook-2124.tistory.com

wook-2124.tistory.com/206

 

정보처리기사 필기, 실기 공부방법 및 기출문제 무료 공유

<네이버페이 5천원 적립 이벤트> 10/18까지 네이버페이 5,000원을 무료​로 주는 이벤트가 진행중이니 한번 확인해보세요🙏 네이버페이 포인트 5천원 무료 적립 이벤트! 모르면 손해!! (초간단) 먼�

wook-2124.tistory.com

댓글