[SQLD] 절차형 SQL

AReum·2023년 12월 5일

1. 절차형 SQL 개요

  • 절차 지향적인 프로그램이 가능하도록 DBMS 벤더별로 PL(Procedural Language)/SQL(Oracle), SQL/PL(DB2), T-SQL(SQL Server) 등의 절차형 SQL을 제공한다.
  • SQL문의 연속적인 실행이나 조건에 따른 분기처리를 이용하여 특정 기능을 수행하는 저장 모듈을 생성할 수 있다.

2. PL/SQL 개요

  • Oracle의 PL/SQL은 Block 구조로 되어있고 Block 내에는 DML 문장과 QUERY 문장, 그리고 절차형 언어(IF, LOOP) 등을 사용할 수 있다.
  • 절차적 프로그래밍을 가능하게 하는 트랜잭션 언어이다.

2-1. PL/SQL의 특징

  • Block 구조로 되어있어 각 기능별로 모듈화가 가능하다.
  • 변수, 상수 등을 선언하여 SQL 문장 간 값을 교환한다.
  • IF, LOOP 등의 절차형 언어를 사용하여 절차적인 프로그램이 가능하도록 한다.
  • DBMS 정의 에러나 사용자 정의 에러를 정의하여 사용할 수 있다.
  • PL/SQL은 Oracle에 내장되어 있으므로 Oracle과 PL/SQL을 지원하는 어떤 서버로도 프로그램을 옮길 수 있다.
  • PL/SQL은 응용 프로그램의 성능을 향상시킨다.
  • PL/SQL은 여러 SQL 문장을 Block으로 묶고 한 번에 Block 전부를 서버로 보내기 때문에 통신량을 줄일 수 있다.

2-2. PL/SQL 구조

  • 저장 모듈
    - PL/SQL 문장을 데이터베이스 서버에 저장하여 사용자와 애플리케이션 사이에서 공유할 수 있도록 만든 일종의 SQL 컴포넌트 프로그램이다.
    - 독립적으로 실행되거나 다른 프로그램으로부터 실행될 수 있는 완전한 실행 프로그램이다.
    - Oracle의 저장 모듈에는 Procedure, User Defined Function, Trigger가 있다.

2-3. PL/SQL 기본 문법(Syntax)

CREATE [OR REPLACE] Procedure [Procedure_name] (argument1 [mode] data_type1, argument2 [mode] date_type2, ... ) 
IS [AS] ... 
BEGIN ...
EXCEPTION ...
END; / 

DROP Procedure [Procedure_name];

3. T-SQL 개요

  • SQL Server를 제어하기 위한 언어이다.

3-1. T-SQL의 특징

  • 변수 선언 기능 @@이라는 전역변수(시스템 함수)와 @이라는 지역변수가 있다.
  • 지역변수는 사용자가 자신의 연결 시간 동안만 사용하기 위해 만들어지는 변수이며 전역변수는 이미 SQL서버에 내장된 값이다.
  • 데이터 유형(Data Type)을 제공한다. 즉 int, float, varchar 등의 자료형을 의미한다.
  • 연산자(Operator) 산술연산자( +, -, *, /)와 비교연산자(=, <, >, <>) 논리연산자(and, or, not) 사용이 가능하다.
  • 흐름 제어 기능 IF-ELSE와 WHILE, CASE-THEN 사용이 가능하다.

3-2. T-SQL 구조

3-3. T-SQL 기본 문법(Syntax)

CREATE Procedure [schema_name.]Procedure_name @parameter1 data_type1 [mode], @parameter2 date_type2 [mode], ... 
WITH AS ...
BEGIN ...
ERROR 처리 ... 
END;

DROP Procedure [schema_name.]Procedure_name;

4. Procedure의 생성과 활용

4-1. 프로시저(Procedure)이란?

  • DB에 대한 일련의 작업을 정리한 절차를 관계형 데이터베이스 관리 시스템에 저장한 것이다.
  • 넓은 의미로 어떠한 업무를 수행하기 위한 절차를 의미한다.

5. User Defined Function의 생성과 활용

  • Procedure처럼 절차형 SQL을 로직과 함께 데이터베이스 내에 저장해 놓은 명령문의 집합을 의미한다.

6. Trigger의 생성과 활용

6-1. 트리거(Trigger)란?

  • 특정한 테이블에 INSERT, UPDATE, DELETE와 같은 DML문이 수행되었을 때, 데이터베이스에서 자동으로 동작하도록 작성된 프로그램이다.

6-2. 트리거(Trigger)의 특징

  • 테이블과 뷰, 데이터베이스 작업을 대상으로 정의할 수 있으며 전체 트랜잭션 작업에 대해 발생되는 Trigger와 각 행에 대해서 발생되는 Trigger가 있다.
  • 데이터베이스에 의해 자동 호출되지만 결국 INSERT, UPDATE, DELETE 문과 하나의 트랜잭션 안에서 일어나는 일련의 작업들이라 할 수 있다.
  • 데이터베이스 보안의 적용, 유효하지 않은 트랜잭션의 예방, 업무 규칙 자동 적용 제공 등에 사용될 수 있다.

7. 프로시저와 트리거의 차이점

profile
개발 관련 공부한 것을 기록합니다.🎈

0개의 댓글