[SQLD] 2-17. 절차형 SQL
2021. 11. 6. 17:53ㆍCertificate`/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 불가능 |