728x90
절차형 SQL
PL/SQL(Oracle), SQL/PL(DB2), T-SQL(SQL Server) 등의 절차향 SQL을 이용하면 저장 모듈을 생성 할 수 있다.
💡 저장 모듈(Stored Module)
SQL문을 데이터베이스 서버에 저장하여 사용자와 애플리케이션 사이에서 공유할 수 있도록 만든 일종의 SQL 컴포넌트 프로그램.
독립적으로 실행되거나 다른 프로그램으로 실행될 수 있는 완전한 실행 프로그램
오라클의 저장 모듈에는 Procedure, User Defined Function, Trigger 가 있다.
PL/SQL 특징
- PL/SQL은 Block 구조로 되어 있어 각 기능별로 모듈화가 가능하다.
- 변수, 상수 등을 선언하여 SQL 문장 간 값을 교환한다.
- IF, LOOP 등의 절차형 언어를 사용하여 절차적인 프로그램이 가능하도록 한다.
- DBMS 정의 에러나 사용자 정의 에러를 정의하여 사용할 수 있다.
- PL/SQL은 Oracle에 내장되어 있으므로 Oracle과 PL/SQL을 지원하는 어떤 서버로도 프로그램을 옮길 수 있다.
- PL/SQL은 응용 프로그램의 성능을 향상시킨다.
- PL/SQL은 여러 SQL 문장을 Block으로 묶고 한 번에 Block 전부를 서버로 보내기 때문에 통신량을 줄일 수 있다.
💡 PL/SQL 에서는 동적 SQL 또는 DDL 문장을 실행할 때 EXCUTE IMMEDIATE를 사용해야 함
Procedure
일련의 쿼리를 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합이다.
User Defined Function
Procedure 처럼 절차형 SQL을 로직과 함께 데이터베이스 내에 저장해 놓은 명령문의 집합을 의미한다.
Procedure와 다른 점은 RETURN을 사용해서 하나의 값을 반드시 되돌려 줘야 한다는 것이다.
Trigger
특정한 테이블에 INSERT, UPDATE, DELETE와 같은 DML문이 수행 되었을 때, 데이터베이스에서 자동으로 동작하도록 작성된 프로그램이다. 즉, 사용자가 직접 호출하여 사용하는 것이 아니고 데이터베이스에서 자동으로 수행하게 된다.
Trigger는 테이블 뷰, 데이터베이스 작업을 대상으로 정의할 수 있으며, 정체 트랜잭션 작업에 대해 발생되는 Trigger와 각 행에 대해서 발생되는 Trigger가 있다.
프로시저와 트리거의 차이점
프로시저 | 트리거 |
CREATE Procedure 문법 사용 | CREATE Trigger 문법 사용 |
EXCUTE 명령어로 실행 | 생성 후 자동으로 실행 |
COMMIT, ROLLBACK 실행 가능 | COMMIT, ROLLBACK 실행 불가능 |
728x90
'자격증 > SQLD' 카테고리의 다른 글
[SQLD] SQL 최적화 기본 원리 - 인덱스 기본 (0) | 2023.08.31 |
---|---|
[SQLD] SQL 최적화 기본 원리 - 옵티마이저와 실행계획 (0) | 2023.08.31 |
[SQLD] SQL 활용 - DCL(Data Control Language) (0) | 2023.08.31 |
[SQLD] SQL 활용 - 윈도우 함수 (0) | 2023.08.31 |
[SQLD] SQLD 활용 - 그룹함수 (0) | 2023.08.31 |