반응형
#1 절차형 SQL
- 일반적인 개발언어처럼 SQL문도 절차지향적인 프로그램 작성이 가능하도록 절차 형 SQL을 제공한다.
- 절차 형 SQL을 사용하면 SQL문의 연속적ㅇ니 실행이나 조건에 따른 분기 처리를 수행하는 모듈을 생성할 수 있다.
- 오라클 기준 이러한 절차 형 모듈의 종류는 프로시저, 사용자 정의함수, 트리거가 있다.
- 오라클 기준 이러한 절차 형 모듈을 PL/SQL이라고 부른다.
#2 PL/SQL의 특징
- Block 구조로 되어있으며 각 기능별로 모듈화가 가능
- 변수/상수 선언 및 IF/LOOP문 등의 사용이 가능
- DBMS에러나 사용자 에러 정의를 할 수 있음
- PL/SQL은 오라클에 내장 시킬수 있으므로 어떠한 오라클 서버로도 이식이 가능
- PL/SQL은 여러 SQL문장을 Block으로 묶고 한번에 Block전부를 서버로 보내기때문에 네트워크 패킷 수를 감소 시킴
- PL/SQL Block의 구조
구조 명 | 필수/선택 | 설명 |
DECLARE(선언 부) | 필수 | BEGIN~END에서 사용할 변수나 인수에 대한 정의 및 데이터 타입 선언 |
BEGIN(실행 부) | 필수 | 개발자가 처리하고자 하는 SQL문과 필요한 LOGIC(비교문, 제어문 등)이 정의되는 실행 부 |
EXCEPTION(예외 처리 부) | 선택 | BEGIN~END에서 실행되는 SQL문에 발생된 에러를 처리하는 에러 처리 부 |
END | 필수 |
- PL/SQL은 DECLARE, BEGIN, EXCEPTION, END로 이루어져 있으며 그중 EXCEPTION은 선택항목이고 나머지는 필수 항목
#3 사용자 정의 함수
- 사용자 정의 함수는 프로시저처럼 SQL문을 IF/LOOP등의 LOGIC와 함께 데이터베이스에 저장해 놓은 명령문의 집합이다.
- SUM, AVG, NVL의 함수처럼 호출해서 사용할 수 있다.
- 프로시저와 차이점은 반드시 한 건을 되돌려 줘야 한다는 것이다.
#4 트리거
- 특정한 테이블에 INSERT, UPDATE, DELETE를 수행할 때 DBMS내에서 자동으로 동작하도록 작성된 프로그램이다.
- 즉 사용자가 직접 호출하는 것이 아니고 DBMS가 자동적으로 수행한다.
- 트리거는 테이블과 뷰, DB작업을 대상으로 정의할 수 있으며 전체 트랜잭션 작업에 대해 발생되는 트리거와 각행에 대해 발생되는 트리거가 있다.
프로시저 | 트리거 |
CREATE PROCEDURE 문법 사용 | CREATE TRIGGER 문법 사용 |
EXECUTE/EXEC 명령어로 실행 | 생성 후 자동으로 실행 |
내부에서 COMMIT, ROLLBACK 실행 가능 | 내부에서 COMMIT, ROLLBACK 실행 안됨 |
#Q. SQL문 관련 문제
1. 다음 중 절차 형 SQL모듈에 대한 설명으로 가장 부적절한 것은?
- 사용자 정의 함수는 절차 형 SQL을 로직과 함께 데이터베이스내에 저장해 놓은 명령문의 집합을 의미한다.
- 트리거는 특정한 테이블에 DML문이 수행되었을 경우 DBMS내에서 자동으로 작동한다.
- 스토어드 프로시저는 절차 형 SQL문을 로직과 함께 DBMS내에서 저장해 놓은 명령문의 집합이다.
- 사용자 정의 함수를 사용하면 모듈화 처리가 이루어지므로 성능상 유리하다.
반응형
'🎵 SQLD' 카테고리의 다른 글
[DB] 함수 (FUNCTION) (0) | 2022.05.17 |
---|---|
[DB] SQL (Structured Query Language) (0) | 2022.05.16 |
[DB] Attribute (속성)의 개념 (0) | 2022.05.14 |
[DB] Entity (엔터티)의 개념 (0) | 2022.05.13 |
[DB] SQL 쿼리 실행 순서 (0) | 2022.05.12 |