Database

[데이터베이스] PL/SQL

vluevy 2021. 8. 21. 18:02
728x90
반응형

PL/SQL

  • PL/SQL 은 Procedural Language extensions to SQL 로 프로그래밍언어의 특징을 가지는 SQL의 확장이며, 데이터 조작과 질의 문장은 PL/SQL의 절차적 코드 안에 포함된다.
  • 주로 자료 내부에서 SQL 명령문만으로는 처리하기 복잡한 자료의 저장이나 프로시저와 트리거 등을 작성하는데 사용된다.

단위

  • PL/SQL 익명블록
  • 함수
  • 프로시저
  • 패키지
    패키지 명세,
    패키지 바디
  • 트리거

자료형

  • 스칼라 자료형
    문자 자료형 : VARVHAR2, CHAR, LONG, LOB
    숫자 자료형 : NUMBER, PLS_INTEGER, BINARY_DOUBLE
    날짜, 시간 : DATE, TIMESTAMP
    BOOLEAN
  • RECORD 유형
    레코드는 C,C++,JAVA 의 구조체 유형과 비슷, 다양한 데이터 타입의 값을 저장할 수 있는 복합 변수
TYPE type_name IS RECORD
    (필드 선언[,필드 선언]...);

-- 필드선언
필드이름 데이터타입 [[NOT NULL] {:= | DEFAULT} expression]

블록 구조

DECLARE
    변수선언;
BEGIN
    실행구문;
    [EXCEPTION]
END;
/

한 문장이 종료할 때마다 세미콜론 넣기
END뒤에 세미콜론
/로 행이 종결

속성

  • %TYPE
    이전에 선언된 변수,필드,레코드,중첩 테이블 또는 데이터베이스 칼럼과 동일한 형식으로 선언
  • %ROWTYPE
    테이블 또는 뷰의 행을 참조하는 레코드를 선언한다

SELECT문

PL/SQL 의 SELECT문에서는 INTO 절이 필요함
나머지 INSERT, UPDATEM DELETE는 기존과 유사함

제어구조

-- 조건제어 IF문
IF 조건 THEN
    구문;
ELSIF 조건 THEN
    구문;
ELSE
    구문;
END IF;
-- 조건제어 CASE문
CASE expr
    WHEN comparison_expr1 THEN statement_1;
    WHEN comparison_expr2 THEN statement_2;
        :
    ELSE statement_n;
END CASE;
-- 반복제어 LOOP문
LOOP 
    statements;
    CONTINUE WHEN condition;
    [EXIT WHEN condition;]
    statements;
END LOOP;
반응형