위지원의 데이터 일기 🐈
Home
  • 분류 전체보기 (563)
    • ✎ 2025년 (4)
    • 2024년 (16)
    • 2023년 (6)
    • 2022년 (35)
      • Developement (22)
      • Error (9)
    • 2021년 (68)
      • ERROR (9)
      • 알고리즘 (11)
      • 개발공부 (21)
      • Data (15)
      • 21.下 (12)
    • 2020년 (164)
      • 코테 (84)
      • Development (29)
      • 정처기 (41)
    • 2019년 (27)
    • 2018년 (89)
      • English Speaking (8)
      • Error (12)
      • C, Java, FileSystem (13)
      • DataBase (15)
      • Java (2)
      • 지식 (16)
      • Go (3)
      • spark (9)
      • 영어 (5)
      • 알고리즘 (6)
    • 2017년 (143)
      • Error (17)
      • machine learning (16)
      • Spark (20)
      • Database (19)
      • Python (17)
      • Spring (9)
      • etc. (10)
      • 백준 (5)
      • Google Platform (12)
      • web Development (7)
      • Docker (3)
      • Linux (8)
Home
  • 분류 전체보기 (563)
    • ✎ 2025년 (4)
    • 2024년 (16)
    • 2023년 (6)
    • 2022년 (35)
      • Developement (22)
      • Error (9)
    • 2021년 (68)
      • ERROR (9)
      • 알고리즘 (11)
      • 개발공부 (21)
      • Data (15)
      • 21.下 (12)
    • 2020년 (164)
      • 코테 (84)
      • Development (29)
      • 정처기 (41)
    • 2019년 (27)
    • 2018년 (89)
      • English Speaking (8)
      • Error (12)
      • C, Java, FileSystem (13)
      • DataBase (15)
      • Java (2)
      • 지식 (16)
      • Go (3)
      • spark (9)
      • 영어 (5)
      • 알고리즘 (6)
    • 2017년 (143)
      • Error (17)
      • machine learning (16)
      • Spark (20)
      • Database (19)
      • Python (17)
      • Spring (9)
      • etc. (10)
      • 백준 (5)
      • Google Platform (12)
      • web Development (7)
      • Docker (3)
      • Linux (8)
블로그 내 검색
포트폴리오

위지원의 데이터 일기 🐈

데이터를 사랑하고 궁금해하는 기록쟁이입니다! 😉 Super Data Girl이 되는 그날까지🏃‍♀️ 화이팅!

  • 🖥 깃블로그
  • 🌍 위키원
  • 📑 내맘대로 스크랩
  • 💌 메일
  • 2020년/정처기

    [2020 정보처리기사 실기]Section 08.SQl응용(프로시저, 트리거)

    2020. 4. 29. 21:54

    by. 위지원

    이전글

    2020/04/28 - [2020년도 상반기/정처기] - [2020 정보처리기사 실기]Section 08. SQL 응용(SELECT)

    프로시저

    1. 프로시저?

    • 절차형 SQL을 활용하여 특정기능을 수행하는 일종의 트랜잭션 언어로, 호출을 통해 실행되어 미리 저장해 놓은 SQL작업 수행
    • Stored Procedure라고도 함
    • 시스템의 일일 마감 작업, Batch작업등에 주로 사용 
    DECLARE
    BEGIN
        [CONTROL] : /*조건문 또는 반복문*/
        [SQL]
        [EXCEPTION]
        [TRANSACTION] : /*수행된 데이터 작업들을 db에 적용할지 취소할지?*/
    END;

     

    2. 프로시저 생성 ; BODY에는 적어도 하나의 SQL을 포함

    CREATE [OR PEPLACE] PROCEDURE 프로시저명(파라미터)
    [지역변수]
    BEGIN
    	프로시저BODY;
    END;

    파라미터는 

    IN 입력 데이터
    OUT 출력 데이터
    INPUT 입출력 데이터
    CREAT OR REPLACE PROCEDURE emp_change_s(i_사원번호 IN INT)
    IS /*변수를 사용하는 예약어 IS, 변수를 사용하지않았으므로 예약어 IS만 작성*/
    BEGIN
        UPDATE 급여 SET 지급방식='S' WHERE 사원번호=i_사원번호;
        EXCEPTION 
            WHEN PROGRAM_ERROR THEN
                ROLLBACK;;
        COMMIT;
    END;

     

    3. 프로시저 실행

    EXECUTE 프로시저명;
    EXEC 프로시저명;
    CALL 프로시저명;
    
    #EXAMPLE
    
    EXECUTE emp_change_s(32);

     

    4. 프로시저 제거

    DROP PROCEDURE 프로시저명;
    
    #EXAMPLE
    
    DROP PROCEDUTE emp_change_s;

     

     

    트리거

    1.트리거?

    Insert, Update, Delete등 Evenet 발할 때마다 작업을 자동으로 수행되는 절차형 SQL

    • 데이터 변경 및 무결성 유지, 로그메세지 출력등에 사용
    • DCL 사용불가능, DCL포함 프로시저나 함수 호출해도 오류발생
    DECLARE
    EVENT
    BEGIN
        [CONTROL]
        [SQL]
        [EXCPETION]
    END;

     

    2. 트리거 생성 ; BODY에는 적어도 하나의 SQL 포함

    CREATE [OR REPLACE] TRIGGER 트리거명 [동작시기 옵션][동작 옵션] ON 테이블명
    REFEPENCING [NEW|OLD] AS 테이블명
    FOR EACH ROW /*각 튜플마다 적용*/
    [WHEN 조건식]
    BEGIN 
        트리거 BODY;
    END;
    • 동작시기 옵션
      • AFTER : 변경된 후
      • BEFORE : 변경 전
    • 동작 옵션
      • INDEST, DELETE, UPDATE 중 하나
    • NEW|OLD : 트리거가 적용될 테이블의 별칭을 지정
      • NEW : 추가/수정에 참여할 튜플들의 집합(테이블)
      • OLD : 수정/삭제 전 대상이 되는 튜플들의 집합(테이블)
    CREATE TRIGGER 학년정도_tri BEFORE INSERT ON 학생
    REFERENCING NEW AS new_table
    FOR EACH ROW
    WHEN(new_table.학년 IS NULL) /*새로운 테이블에서 학년이 NULL이면 이 TRIGGER가 적용됨*/
    BEGIN
    	:new_table.gkrsus :='신입생';
        /*NEW 또는 OLD로 지정된 테이블 앞엔 :콜론 삽입*/
        /*저장하라는 의미로 :=를 사용하여야 함*/
    END;

     

    3. 트리거 제거

    DROP TRIGGER 트리거명;
    
    #EXAMPLE
    
    DROP TRIGGER 학년정보_tri;

     

    다음글

    2020/04/29 - [2020년도 상반기/정처기] - [2020 정보처리기사 실기]Section 08.SQL응용(사용자 정의 함수, 커서)

     

    저작자표시

    '2020년 > 정처기' 카테고리의 다른 글

    [2020 정보처기기사 실기] Section 09. 소프트웨어 개발 보안 구축 #1  (0) 2020.05.05
    [2020 정보처리기사 실기]Section 08.SQL응용(사용자 정의 함수, 커서)  (0) 2020.04.29
    [2020 정보처리기사 실기]Section 08. SQL 응용(SELECT)  (0) 2020.04.28
    [2020 정보처리기사 실기] Section 08.SQL 응용(DCL)  (0) 2020.04.28
    [2020 정보처리기사 실기] Section 08. SQL 응용(DDL)  (0) 2020.04.28

    잠깐만요~! 읽으신김에 이런 글들은 어떠세요? 👀

    • [2020 정보처기기사 실기] Section 09. 소프트웨어 개발 보안 구축 #1 2020.05.05
    • [2020 정보처리기사 실기]Section 08.SQL응용(사용자 정의 함수, 커서) 2020.04.29
    • [2020 정보처리기사 실기]Section 08. SQL 응용(SELECT) 2020.04.28
    • [2020 정보처리기사 실기] Section 08.SQL 응용(DCL) 2020.04.28
    맨 위로
전체 글 보기
Tistory 로그인
Tistory 로그아웃
로그아웃 글쓰기 관리

열정! 열정! 열정! 🔥

Designed by Nana
블로그 이미지
위지원
데이터 엔지니어로 근무 중에 있으며 데이터와 관련된 일을 모두 좋아합니다!. 특히 ETL 부분에 관심이 가장 크며 데이터를 빛이나게 가공하는 일을 좋아한답니다 ✨

티스토리툴바

티스토리툴바