[SQLD] 절차형 SQL

younghyun·2023년 6월 8일
0

SQLD

목록 보기
14/18

절차형 SQL

절차 지향적인 프로그램이 가능하도록 DBMS 벤더별로 PL/SQL(Oracle), SQL/PL, T-SQL 등의 절차형 SQL을 제공

PL/SQL

PL/SQ은 절차적 언어의 특성을 가지고 있기 때문에 원하는 결과, 제약조건, 처리 절차를 개발자가 작성해야 한다.
PL/SQL은 Block 구조로 되어있어 각 기능별로 모듈화가 가능하다.
DBMS 정의 에러나 사용자 정의 에러를 정의하여 사용할 수 있다.
PL/SQL은 Oracle에 내장되어 있으므로 Oracle과 PL/SQL을 지원하는 어떤 서버로도 프로그램을 옮길 수 있다.
PL/SQL은 여러 SQL 문장을 Block으로 묶고 한 번에 Block 전부를 서버로 보내기 때문에 통신량을 줄일 수 있다.

블록 단위 구성 : PL/SQL 모두 블록 구조로 이루어져있습니다. 이 블록 구조는 선언부 , 실행부 , 예외처리 부로 나뉘며 DECLARE - BEGIN - EXCEPTION - END 가 이에 해당한다.

PL/SQL 구조

DECLARE : BEGIN ~ END 절에서 사용될 변수와 인수에 대한 정의 및 데이터 타입을 선언하는 선언부이다.

BEGIN ~ END : 개발자가 처리하고자 하는 SQL문과 비교문, 제어문을 이용하여 필요한 로직을 처리하는 실행부이다.

EXCEPTION : BEGIN ~ END 절에서 실행되는 SQL문이 실행될 때 에러가 발생하면

저장 프로시저

SQL을 로직과 함께 데이터베이스 내에 저장해 놓은 명령문의 집합이다.
저장 프로시저는 쿼리문의 집합으로 어떠한 동작을 일괄 처리하기 위한 용도로 사용한다.
모듈식 프로그래밍이 가능하다.

Trigger 생성과 활용

특정한 테이블에 DML문이 수행되었을 때, 데이터베이스에서 자동으로 동작하도록 작성된 프로그램 (수동으로 실행될 수 없음)
저장 프로시저로 실행할 수 없는 사항을 해결해준다
주된 역할은 데이터의 무결성 유지이다.

프로시저와 트리거 차이점

[123번]
PL/SQL로 작성된 것들 (저장모듈)은 작성자의 기준으로 트랜잭션을 분할할 수 있다.

[124번]
동적 SQL 또는 DDL 문장을 실행할 때 EXECUTE IMMEDIATE를 사용해야 한다.

[125번]

  • 저장형 프로시저는 SQL을 로직과 함께 데이터베이스 내에 저장해 놓은 명령문의 집합을 의미한다.
  • 저장형 함수(사용자 정의 함수)는 다른 SQL문을 통하여 호출되고 그 결과를 리턴하는 SQL의 보조적인 역할을 한다.
  • 트리거는 DML문이 수행되었을 때 DB에서 자동으로 동작하도록 작성된 프로그램이다.
  • 트리거의 용도는 데이터의 무결성과 일관성을 위해서 사용자 정의 함수를 사용하는 것이다.
profile
🌱 주니어 백엔드 개발자입니당

0개의 댓글