본문 바로가기
CS

절차형 SQL

by Forsaken Developer 2023. 4. 7.
728x90
728x90

절차형 SQL

일반적인 개발 언어처럼 SQL 언어에서도 절차 지향적인 프로그램이 가능하도록 하는 트랜잭션 언어

출력부

DBMS_OUTPUT 패키지

메시지를 버퍼에 저장하고 버퍼로부터 메시지를 읽어오기 위한 인터페이스 패키지

절차형 SQL이 정상적으로 구현되었는지 테스트하는 목적으로 사용

  • DBMS_OUTPUT.PUT(문자열);
  • DBMS_OUTPUT.LINE(문자열);

제어부

  • IF문 : 조건이 참인지 거짓인지에 따라 경로를 선택하는 조건문
  • 간단한 케이스 문 : 명확한 값을 가지는 조건에 따라 여러 개의 선택 경로 중 하나를 취하고자 할 때 사용하는 조건문
  • 검색된 케이스 문 : 명확한 값 및 범위를 가지는 조건에 따라 여러 개의 선택 경로 중 하나를 취하고자 할 때 사용하는 조건문
  • LOOP 문 : 특정 조건이 만족될 때까지 반복해서 문장을 실행하는 반복문
  • WHILE 문 : 시작과 종료 조건을 지정하여 참인 동안에는 해당 문장을 반복해서 실행하는 명령문
  • FOR LOOP 문 : 시작 값과 끝값을 지정하여 해당 값이 그 구간 내에 있을 때 반복하는 반복문

예외부

실행 중 발생 가능한 예외상황을 수행하는 부분

프로시저

일련의 쿼리들을 마치 하나의 함숯처럼 실행하기 위한 쿼리의 집합

프로시저 구성

  • 선언부(DECLARE) : 프로시저의 명칭, 변수와 인수, 데이터 타입을 정의
  • 시작/종료부(BEGIN/END) : 프로시저의 시작과 종료를 표현
  • 제어부(CONTROL) : 조건문과 반복문을 이용하여 문장을 처리
  • SQL : DML을 주로 사용
  • 예외부(EXCEPTION) : BEGIN~END절에서 실행되는 SQL 문이 실행될 때 예외 처리 방법을 정의하는 처리부
  • 실행부(TRANSACTION) : 프로시저에서 수행된 DML 수행 내역의 DBMS의 적용 또는 취소 여부를 결정하는 처리부

사용자 정의 함수

일련의 SQL 처리를 수행하고 수행 결과를 단일 값으로 반환할 수 있는 절차형 SQL

사용자 정의 함수 구성

  • 선언부(DECLARE) : 사용자 정의 함수의 명칭, 변수와 인수, 데이터 타입을 정의
  • 시작/종료부(BEGIN/END) : 사용자 정의 함수의 시작과 종료를 표현
  • 제어부(CONTROL) : 조건문과 반복문을 이용하여 문장을 처리
  • SQL : 조회 용도로 SELECT 문을 사용
  • 예외부(EXCEPTION) : BEGIN~END절에서 실행되는 SQL 문이 실행될 때 예외 처리 방법을 정의하는 처리부
  • 반환부(RETURN) : 호출문에 대한 함숫값을 반환

트리거

데이터베이스 시스템에서 삽입, 갱신, 삭제 등의 이벤트가 발생할 때마다 관련 작업이 자동으로 수행되는 절차형 SQL

데이터 변화가 생길 때마다 실행되는 행트리거와 트리거에 의해 단 한 번 실행되는 문장 트리거가 있다.

트리거 구성

  • 선언부(DECLARE) : 트리거의 명칭을 정의하는 부분
  • 이벤트 부(EVENT) : 트리거가 실행되는 타이밍, 이벤트를 명시하는 부분
  • 시작/종료부(BEGIN/END) : 트리거의 시작과 종료를 표현
  • 제어부(CONTROL) : 조건문과 반복문을 이용하여 문장을 처리
  • SQL : DML을 주로 사용
  • 예외부(EXCEPTION) : BEGIN~END절에서 실행되는 SQL 문이 실행될 때 예외 처리 방법을 정의하는 처리부
728x90
반응형

'CS' 카테고리의 다른 글

개발환경 구축  (0) 2023.04.08
쿼리 성능 개선과 옵티마이저  (0) 2023.04.07
응용 SQL  (0) 2023.04.07
DDL, DML, DCL의 개념  (0) 2023.04.07
트랜잭션  (0) 2023.04.06

댓글