[ 데이터베이스 ] 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문이 실행될 때 에러가 발생하면 그 에어를 어떻게 처리할지 정의하는 예외 처리부
'Back-End > SQL 개발자 자격증' 카테고리의 다른 글
[ 데이터베이스 ] JOIN OPERATION (0) | 2023.11.13 |
---|---|
[ 데이터베이스 ] PL/SQL, T-SQL, Trigger (1) | 2023.11.12 |
[ 데이터베이스 ] Foreign key specification options (1) | 2023.11.06 |
[ 데이터베이스 ] Entity Classification and Characteristics (1) | 2023.11.02 |
[ 데이터베이스 ] ERD, Data Modeling, Normalization (0) | 2023.11.01 |