[정처기/실기] 7-2, 3 집계함수, 그룹함수, 윈도 함수, 절차형 SQL/SQL 최적화

2023. 7. 5. 12:42· 자격증/실기
목차
  1. 절차형 SQL  활용하기
  2. 프로시저
  3. 사용자 정의 함수
  4. 트리거
728x90

오늘 할 분량은 이정도? 사실 월, 화는 탭에 정리를 해둬서 주후에 파일로 블로그에 올려야할지 고민중이다.

 

키보드가 난리라서 이응과 디귿이 연타로 입력된다는 불편함을 빼면 오늘도 할만하다... 식단 구매하느라 거금이 나가서 키보드는 또 다음 월급을 기약해야겠다. (역시 쿠팡을 뛰어야할까)

 


절차형 SQL  활용하기

1) 절차형 SQL 개념

- SLQ도 절차 지향적인 프로그래밍 가능하도록 하는 트랜잭션 언어

 

2) 절차형 SQL 종류

1. 프로시저(Procedure) : 일련의 쿼리를 하나의 함수처럼 실행하기위한 쿼리의 집합

2. 사용자 정의 함수(User-Defined Function) : SQL 수행, 수행 결과를 다닐 값으로 반환

3. 트리거(Triggeer) : DB에서 이벤트가 발생 -> 관련 작업이 자동으로 수행

 

3) 출력부

DBMS_OUTPUT 패키지

- 메시지 버퍼에 저장 -> 버퍼로부터 메시지 읽어오는 인터페이스 페키지

- 절차형 SQL이 정상적인 구현이 되었는지 테스트

 

DBMS OUTPUT 패키지 종류

1. DBMS_OUTPUT.PUT(문자열); : 개행 X 문자열 출력

2. DBMS_OUTPUT.LINE(문자열); : 문자열 출력 후 개행

 

4) 제어부

 (1) 조건문(IF, 간단한 CASE 문, 검색된 CASEE 문)

  - IF

IF 조건 THEN
 문장;
ELSIF 조건 THEN
 문장;
...
ELSE
 문장;
ENDD IF;

  - 간단한 케이스 문

CASE 변수
 WHEN 값1 THEN
  SET 명령어;
 WHEN 값2 THEN
  SET 명령어;
...
 ELSE
  SET 명령어;
END CASE;

  - 검색된 케이스문

CASE
 WHEN 값1 THEN
  SET 명령어;
 WHEN 값2 THEN
  SET 명령어;
...
 ELSE
  SET 명령어;
END CASE;

 

 (2) 반복문

  - LOOP : 특정 조건이 만족될 때까지 반복해서 문장 실행

LOOP
 문장;
 EXIT WHEN 탈출조건;
END LOOP

  - WHILE : 참인동안 반복

WHILE 반복 조건 LOOP
 문장;
EXIT WHEN 탈출 조건;
END LOOP;

  - FOR LOOP : 시작과 끝을 지정하여 범위 내라면 반복

FOR 인덱스 IN 시작값 .. 종료값
LOOP
 문장;
END LOOP;

 

5) 예외부

EXPECTION
 WHEN 조건 THEN
  SET 명령어;

 

프로시저

1) 개념

- 일련의 쿼리를 하나의 함수처럼 실행하기 위한 쿼리의 집합

 

2) 구성

DECLARE

BEGIN

 시작, 종료 : 실행 및 서브루틴 생성

 제어 : 단위 블록별 실행흐름 제어

 SQL : 데이터 관리를 위한 조회, 추가, 수정, 삭제

 예외 : 예외 수행

 실행 : DBMS에 반영, 복구

END

구성요소 설명
선언부(DECLARE) 프로시저 명칭, 변수, 인수, 데이터 타입 정의
시작/종료부(BEGIN/END) 프로시저 시작, 종료(한 쌍)
제어부(CONTROL) 순차적 처리, 조건문/반복문 이용
SQL 주로 DML 사용, 간혹 DDL TRUNCATE 사용ㅇ
예외부(EXCEPTION) BEGIN~END에서 SQL문 실행 -> 옝외 발생시 예외 처리 방법
실행부(TRANSACTION) DML 수행 내역의 DBMS의 적용, 취소 여부 결정하는 처리부
프로시저 구성(영어 암기 필수)
선언부, 시장/종료부, 제어부, SQL, 예외부, 실행부

수제비에서는.. DB 컨닝 세트..라고 외우라고..
DE / BE / CON / S / E / T
DECLARE, BEGIN/END, CONTROL, SQL, EXCEPTION, TRANSACTION

출처 : https://shlee1990.tistory.com/836

3) 프로시저 문법

CREATE [OR REPLACE] PROCEDURE 프로시저-명
(파라미터-명, [IN | OUT | INOUT] 데이터-타입, ...)
IS
 변수 선언
BEGIN
 명령어;
[COMMIT | ROLLBACK]
END;
구성 설명
OR REPLACE 프로시저로 값 전달
IN 운영체제 -> 프로시저로 값 전달
OUT 프로시저 -> 운영체제로 값 전달
INOUT IN, OUT 둘 다 해
BEGIN 프로시저 시작 키워드
COMMIT 트랜잭션 성공저그로 끝났을 때 사용하는 연산
ROLLBACK 드랜잭션의 비정상적인 종료 -> 전체 OR 일부 연산 취소
END 프로시저의 끝

 

4) 프로시저 호출문 작성

프로시저 실행 : EXECUTE, EXEC

SQL> EXECUTE 프로시저-명 (파라미터1, 파라미터2,,,);

 

사용자 정의 함수

1) 개념

일련의 SQL 처리. 수행 결과를 단일 값으로 반환할 수 있는 절차형 SQL

 

2) 구성

구성요소 설명
선언부(DECLARE) 사용자 정의 함수의 명칭, 변수, 인수, 데이터 타입 정의
시작/종료부(BEGIN/END) 시작, 종료(한 쌍)
제어부(CONTROL) 순차적 처리, 조건문/반복문 이용
SQL 조회 용도로 SELECT. 조작어는 사용 X
예외부(EXCEPTION) BEGIN~END에서 SQL문 실행 -> 옝외 발생시 예외 처리 방법
반환부(RETURN) 호출문에 대한 함숫값 반환

3) 문법

CREATE [OR REPLACE] FUNCTION 함수명
(파라미터-명 IN 데이터 타입, 데이터 타입,,,)
RETRUN 데이터-타입
IS
 변수 선언
BEGIN
 명령어;
 RETURN 변수;
END;

 

트리거

1) 개념

이벤트 발생 -> 관련 작업이 자동으로 수행되는 절차형 SQL

 

2) 목적

특정 테이블의 데이터 변경을 시작점. 그와 관련된 작업을 자동으로 수행 

 

3) 종류

행 트리거 : 데이터가 변할 때 마다 실행

문장 트리거 : 트리거에 의해 단 한 번 실행

 

4) 구성

구성요소 설명
선언부(DECLARE) 트리거 명칭 정의
시작/종료부(BEGIN/END) 시작, 종료(한 쌍)
제어부(CONTROL) 순차적 처리, 조건문/반복문 이용
SQL 주로 DML, 가끔 DDL
예외부(EXCEPTION) BEGIN~END에서 SQL문 실행 -> 옝외 발생시 예외 처리 방법
이벤트부(EVENT) 트리거가 실행되는 타이밍

5) 문법

CREATE [OR REPLACE] TRIGGER 트리거명
[BEFORE | AFTER] 유형 ON 테이블명
[FOR EACH ROW]
BEGIN
END;

BEFORE : INSERT, UPDATE, DELETE 수행하기 전 실행

AFTER : INSERT, UPDATE, DELETE 성공적으로 수행 후 실행

유형 : DML에 해당하는 INSERT, UPDATE, DELETE 중 트리거를 수행 할 명령어 유형 선택(중복 가능. 예) INSERT OR DELETE)

FOR EACH ROW : 매번 변겨외는 데이터 행의 수만큼 실행

BEGIN : 트리거 시작

END : 트리거 끝

 

6) 주의

1. TCL 안됨 : COMMIT, ROLLBACK 은 ㄴㄴ

2. 오류에 주의

저작자표시 비영리 변경금지 (새창열림)

'자격증 > 실기' 카테고리의 다른 글

[정처기/실기] 수제비 공식 온라인 스터디 4주로 23년 07월 정처기 실기 시험 합격해보기  (0) 2023.07.03
[기초] 소프트웨어 공학  (0) 2023.02.20
  1. 절차형 SQL  활용하기
  2. 프로시저
  3. 사용자 정의 함수
  4. 트리거
'자격증/실기' 카테고리의 다른 글
  • [정처기/실기] 수제비 공식 온라인 스터디 4주로 23년 07월 정처기 실기 시험 합격해보기
  • [기초] 소프트웨어 공학
이동식이
이동식이
개발자가 되고싶은 동식이... 티스토리를 시작하게 되었다.
동식이의 공부상자개발자가 되고싶은 동식이... 티스토리를 시작하게 되었다.
이동식이
동식이의 공부상자
이동식이
전체
오늘
어제
  • 분류 전체보기 (116)
    • 동식이 취업시키기 작전 (74)
      • 코딩테스트 (43)
      • 알고리즘 (5)
      • Unity (7)
      • CS (1)
      • 1차 프로젝트 : Overcooked2 (4)
      • FPS - Penguin party(feat. u.. (4)
      • UNITY로 FPS GAME 개발(FEAT. 1인.. (3)
      • 기업프로젝트 : Hacsamo (3)
    • 알고리즘 (15)
      • 백준 (4)
      • 프로그래머스 (10)
    • 일기 (3)
      • 회고 (0)
      • 리뷰 (0)
    • 자격증 (7)
      • 실기 (3)
      • 1. 요구사항 확인 (4)
    • Project (11)
      • Team Project (4)
      • Personal Project (0)
      • 베어머더러 (0)
      • 빵빵빵 타이쿤 (7)
    • 기술 블로그 염탐 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 글쓰기
  • 관리자

공지사항

인기 글

태그

  • 프로그래머스
  • 코딩테스트
  • 배경스크롤링
  • 애인에겐 머리를 조아려 감사함
  • [play games plugin 0.10.14] 06-11-25 23:27:52 +09:00 error: server auth code and id token require web clientid to configured. googleplaygames.ourutils.playgameshelperobject:update() [play games plugin 0.10.14] 06-11-25 23:27:52 +09:00 error: exception l
  • c#
  • 슬픈 런타임에러 증후군
  • 스택
  • 파이썬
  • 자료구조
  • 아자아자 파이팅이닷!
  • Python
  • 빵빵빵타이쿤
  • 백준
  • 유니티
  • system.action`1[t] callback) [0x00000] in <00000000000000000000000000000000>:0 at googleplaygames.ourutils.playgameshelperobject.update () [0x00000] in <00000000000000000000000000000000>:0 googleplaygames.ourutils.playgameshelperobject:update()
  • 개인정보수집유효기간
  • Unity
  • Photon
  • 무한배경

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.0
이동식이
[정처기/실기] 7-2, 3 집계함수, 그룹함수, 윈도 함수, 절차형 SQL/SQL 최적화
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.