남덕쿵
덕쿵 ITLOG
남덕쿵
전체 방문자
오늘
어제
  • 분류 전체보기 (38)
    • 🖐 Flutter (2)
    • ⭐ 보안기사 (25)
    • 🔆 업무 (4)
    • 🎵 SQLD (6)
    • 🧡 일상 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 보안교실
  • 정보보안
  • Flutter
  • DB이론
  • SQL순서
  • 보안기사 실기
  • 센토스
  • 보안기사 기출문제
  • 절차형SQL
  • DB속성
  • Flutter 오류
  • SQLD
  • 정보보안기사 실기
  • 엔터티 개념
  • 프로시저 이론
  • 보인기사 기출문제
  • DB함수
  • 정보보안기사
  • 데이터베이스 이론
  • 쿼리순서
  • 보안기사 14회 실기
  • SQL
  • SQL문
  • 엔터티의 이름
  • 보안기사
  • 플러터
  • Flutter 버전 오류
  • MariaDB
  • Dart SDK
  • SQLP

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
남덕쿵

덕쿵 ITLOG

🎵 SQLD

[DB] 절차형 SQL (PL/SQL, Trigger)

2022. 5. 20. 16:16
반응형

#1 절차형 SQL

  1. 일반적인 개발언어처럼 SQL문도 절차지향적인 프로그램 작성이 가능하도록 절차 형 SQL을 제공한다.
  2. 절차 형 SQL을 사용하면 SQL문의 연속적ㅇ니 실행이나 조건에 따른 분기 처리를 수행하는 모듈을 생성할 수 있다.
  3. 오라클 기준 이러한 절차 형 모듈의 종류는 프로시저, 사용자 정의함수, 트리거가 있다.
  4. 오라클 기준 이러한 절차 형 모듈을 PL/SQL이라고 부른다.

 

#2 PL/SQL의 특징

  1. Block 구조로 되어있으며 각 기능별로 모듈화가 가능
  2. 변수/상수 선언 및 IF/LOOP문 등의 사용이 가능
  3. DBMS에러나 사용자 에러 정의를 할 수 있음
  4. PL/SQL은 오라클에 내장 시킬수 있으므로 어떠한 오라클 서버로도 이식이 가능
  5. 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 사용자 정의 함수

  1. 사용자 정의 함수는 프로시저처럼 SQL문을 IF/LOOP등의 LOGIC와 함께 데이터베이스에 저장해 놓은 명령문의 집합이다.
  2. SUM, AVG, NVL의 함수처럼 호출해서 사용할 수 있다.
  3. 프로시저와 차이점은 반드시 한 건을 되돌려 줘야 한다는 것이다.

 

#4 트리거

  1. 특정한 테이블에 INSERT, UPDATE, DELETE를 수행할 때 DBMS내에서 자동으로 동작하도록 작성된 프로그램이다.
  2. 즉 사용자가 직접 호출하는 것이 아니고 DBMS가 자동적으로 수행한다.
  3. 트리거는 테이블과 뷰, DB작업을 대상으로 정의할 수 있으며 전체 트랜잭션 작업에 대해 발생되는 트리거와 각행에 대해 발생되는 트리거가 있다.
프로시저 트리거
CREATE PROCEDURE 문법 사용 CREATE TRIGGER 문법 사용
EXECUTE/EXEC 명령어로 실행 생성 후 자동으로 실행
내부에서 COMMIT, ROLLBACK 실행 가능 내부에서 COMMIT, ROLLBACK 실행 안됨

 

#Q. SQL문 관련 문제

1. 다음 중 절차 형 SQL모듈에 대한 설명으로 가장 부적절한 것은?

  1. 사용자 정의 함수는 절차 형 SQL을 로직과 함께 데이터베이스내에 저장해 놓은 명령문의 집합을 의미한다.
  2. 트리거는 특정한 테이블에 DML문이 수행되었을 경우 DBMS내에서 자동으로 작동한다.
  3. 스토어드 프로시저는 절차 형 SQL문을 로직과 함께 DBMS내에서 저장해 놓은 명령문의 집합이다.
  4. 사용자 정의 함수를 사용하면 모듈화 처리가 이루어지므로 성능상 유리하다.
반응형
저작자표시 (새창열림)

'🎵 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
    '🎵 SQLD' 카테고리의 다른 글
    • [DB] 함수 (FUNCTION)
    • [DB] SQL (Structured Query Language)
    • [DB] Attribute (속성)의 개념
    • [DB] Entity (엔터티)의 개념
    남덕쿵
    남덕쿵
    열심히 해보쟈 ^____^

    티스토리툴바