-> 블로그 이전

[SQLD] 2-17. 절차형 SQL

2021. 11. 6. 17:53Certificate`/SQLD

PL/SQL

- Block구조로 되어있고 Block내에 DML문장, QUERY문장, 절차형 언어(IF, LOOP) 등 사용 가능

- 절차적 프로그래밍을 가능하게 하는 트랜잭션 언어

- 다양한 저장 모듈 개발

 

특징

- Block 구조로 되어있어 각 기능별로 모듈화 가능

- 변수, 상수 등을 선언해서 SQL 문장 간 값을 교환

- IF, LOOP 등의 절차형 언어를 사용해서 절차적 프로그램이 가능하도록 함

- DBMS 정의 에러/사용자 정의 에러를 정의하여 사용 가능

- PL/SQL은 Oracle에 내장되어 있어서 Oracle, PL/SQL을 지원하는 어떤 서버로도 프로그램을 옮길 수 있다

- PL/SQL은 응용 프로그램의 성능을 향상시킨다

- 통신량을 줄일 수 있다

 

구조

- DECLARE 

  • BEGIN ~ END 절에서 사용될 변수, 인수에 대한 정의, 데이터 타입을 선언

- BEGIN ~ END

  • 개발자가 처리하고자 하는 SQL문과 여러 가지 비교/제어문을 이용해서 필요한 로직 처리

- EXCEPTION

  • BEGIN ~ END 절에서 실행되는 SQL문이 실행될 때 에러가 발생하면 그 에러를 어떻게 처리할 것인지 정의하는 예외 처리부

 

T - SQL

- SQL Server를 제어하기 위한 언어

 

구조

- DECLARE 

  • BEGIN ~ END 절에서 사용될 변수, 인수에 대한 정의, 데이터 타입을 선언

- BEGIN ~ END

  • 개발자가 처리하고자 하는 SQL문과 여러 가지 비교/제어문을 이용해서 필요한 로직 처리

- ERROR

  • BEGIN ~ END 절에서 실행되는 SQL문이 실행될 때 에러가 발생하면 그 에러를 어떻게 처리할 것인지 정의하는 예외 처리부

 

사용자 정의 함수

- 프로시저처럼 절차형 SQL을 로직과 함께 DB내에 저장해 놓은 명령문의 집합

- return을 사용해서 하나의 값을 반드시 되돌려 줘야 한다

 

트리거 (Trigger)

- 특정한 테이블에 DML문이 수행되었을 때, DB에 자동으로 동작하도록 작성된 프로그램

- 사용자가 직접 호출하는게 아니라 DB에서 자동적으로 수행

- 테이블, 뷰, DB 작업을 대상으로 정의

 

종류

- 전체 트랜잭션 작업에 대해 발생되는 Trigger

- 각 행에 대해서 발생되는 Trigger

 

프로시저 / 트리거 차이점

프로시져 (Procedure) 트리거 (Trigger)
CREATE Procedure 문법 사용 CREATE Trigger 문법사용
EXECUTE 명령어로 실행 생성 후 자동 실행
COMMIT, ROLLBACK 가능 COMMIT, ROLLBACK 불가능