Back-End/SQL 개발자 자격증

[ 데이터베이스 ] Built in Function

psy_er 2023. 11. 12. 15:57
728x90

[ 데이터베이스 ] Built in Function

 

 

 

내장함수(builtin)

1) 단일행 함수 - 함수의 입력 값이 단일 행에 입력됨

2) 다중행 함수 - 함수의 입력 값이 여러행에 입력됨

   - 집계함수 : count, sum, avg, max, min

   - 그룹함수 : rollup, cube, grouping sets

   - 윈도함수 : 다양한 분석기능 함수 rank, sum, max 등

사용자 정의 함수

 

 

그룹함수 (GROUP BY +)

일반 그룹함수로 동일한 결과를 추출할 수 있다

 

1) ROLLUP

Subtotal을 생성하기 위해 사용

Grouping Columns의 수를 N이라고 했을 때 N+1 Level의 Subtotal  생성

인수(계층구조) 순서에 주의 

ex) 시간, 지역 등 계츨적 분류의 집계, 소그룹 간의 소계를 계산

 

 

2) CUBE

GROUP BY 항목들 간 다차원적인 소계 계산

결합 가능한 모든 값에 대하여 다차원 집계를 생성

ROULLUP에 비해 시스템 부하가 심하다 2^n

ex) CUBE(A,B) = GROUPING SETS(A, B, (A,B ), ())

 

 

3) GROUPING SETS

특정 항목에 대한 소계 계산

인수들에 대한 개별 집계를 구할 수 있다, 인수들간 평등 구조를 가짐

다양한 소계 집합 생성 가능, 계층 구조는 없다

 

 

절차형 SQL

SQL문의 연속적인 실행이나 조건에 따른 분기처리를 이용하여 특정 기능을 수행하는 저장 모듈을 생성할 수 있다.

PL/SQL은 SQL을 확장한 절차적 언어

ex) Procedure, User, Defined Function, Trigger 등이 있음

 

 

저장모듈

PL/SQL 문장을 DB 서버에 저장하여 사용자와 애플리케이션 사이에 공유할 수 있도록 만든 일종의 SQL 컴포넌트 프로그램, 독립적으로 실행되거나 다른 프로그램으로부터 실행 될 수 있는 완전한 실행 프로그램

Cursor (커서)는 DB의 연결포인트이다.

 

 

PL/SQLD에서 CURSOR를 사용시, FETCH(읽어오기)전 해야하는 것은?

-> CURSOR OPEN

 

 

PL/SQL 특징

1. Block 구조로 되어있어 각 기능별로 모듈화 가능

2. 변수, 상수 등을 선언하여 SQL 문장 간 값을 교환

3. IF, LOOP 등의 절차형 언어를 사용하여 절차적인 프로그램이 가능하도록 한다

4. DBMS 정의 에러나 사용자 정의 에러를 정의하여 사용할 수 있다.

5. PL/SQL은 Oracle에 내장되어 있으므로 호환성 굳

6. 응용 프로그램의 성능을 향상시킨다

7. 여러 문장을 Block 단위로 처리 -> 통신량을 줄일 수 있다.

 

 

BLOCK 구조

옵션1) DECLARE : BEGIN~END 절에서 사용될 변수와 인수에 대한 정의 및 데이터 타입 선언부

필수2) BEGIN~END : 개발자가 처리하고자 하는 SQL문과 여러 가지 비교문, 제어문을 이용한 필요한 로직 처리

옵션3) EXCEPTION : BEGIN~END 절에서 실행되는 SQL문이 실행될 때 에러가 발생하면 그 에어를 어떻게 처리할지 정의하는 예외 처리부

 

 

 

 

 

728x90