상세 컨텐츠

본문 제목

Db2 신규 SQL 함수

Db2 for LUW

by 파란디비 2022. 11. 3. 14:10

본문

Db2는 9.7부터 개발 편의성을 위해  ANSI 표준 외에도 업계에서 많이 사용되는 일반 또는 통계함수들을 지속적으로 추가해 오고 있습니다. 버전 10.5부터 11.5에 이르기까지 추가로 지원되는 함수들에 대해 살펴봅니다. 

(v10.5)

 

행 크기 확장 지원 테이블 생성 시 레코드 길이가 페이지의 최대 레코드 길이 초과 가능

인덱스키에서 널 키값 제외 CREATE INDEX문에서 EXCLUDE NULL KEYS 지원

문자열 단위 세분화 문자 데이터 타입에서 단위 지정(octet, codeunits16, codeuints32)

 

(v11.1)

BINARY and VARBINARY 이진데이터 타입

정규표현식 REGEXP_COUNT, REGEXP_EXTRACT, REGEXP_INSTR, REGEXP_LIKE, REGEXP_MATCH_COUNT, REGEXP_REPLACE, REGEXP_SUBSTR

NTH_VALUE   N번째 행의 표현식 값 리턴

LISTAGG함수 문자열 병합

ADD_DAYS 지정된 일 수를 더한 날짜시간 리턴

ADD_HOURS 지정된 시간을 더한 timestamp 리턴

ADD_MINUTES 지정된 분을 더한 timestamp리턴

ADD_SECONDS 지정된 초를 더한 timestamp리턴

ADD_YEARS 지정된 년 수를 더한 날짜시간 리턴

AGE 현재 날짜와 지정날짜간 날짜수 차이

BTRIM 소스 문자열에서 지정된 문자 제거

COLLATION_KEY 지정된 정렬 키로 정렬

COVARIANCE_SAMP 공분산값 리턴

CUME_DIST 누적 분산값 리턴

DATE_PART 날짜 시간값에서 서브 필드 추출

DATE_TRUNC 날짜 시간값에서 지정된 단위 이하 자르기

DAYOFMONTH 지정 월의 일수 구하기

DAYS_BETWEEN 지정된 날짜 사이의 일 수 구하기

DAYS_TO_END_OF_MONTH 월말까지 남은 일 수 구하기

EXTRACT 날짜 시간값에서 지정 단위 추출

FIRST_DAY 해당월의 1일 리턴

HASH 입력 데이터의 128비트, 160비트, 256비트 또는 512비트 해시값  출력, 암호화 용도로 사용

HASH4 문자열의 32비트 체크섬 해시값 리턴

HASH8 문자열의 64비트 해시값 리턴

HOURS_BETWEEN 두 날짜간 시(Hour) 차이

INTNAND , INTNOR, INTNXOR, INTNNOT 비트처리함수

MEDIAN 중간 값 구하기

MINUTES_BETWEEN 두 시간 간 분(munutes) 차이

NEXT_MONTH 다음 달의 1일 날짜 

NEXT_QUARTER 다음 분기의 1일 날짜

NEXT_WEEK 다음 주의 첫 요일(일요일) 날짜

NEXT_YEAR 다음 해의 첫 날짜(1월1일)

NOW 현재시간(timestamp)

PERCENTILE_CONT 연속 분산 모델을 사용하여 정렬 스펙이 제공된 경우 지정된 백분위수 리턴

PERCENTILE_DISC 이산 분산 모델을 사용하여 정렬 스펙이 제공된 경우 지정된 백분위수 리턴

PERCENT_RANK 상대적 백분위수 

RAWTOHEX 16진수 문자열 리턴

SECONDS_BETWEEN 두 날짜시간 값 간 초(seconds) 차이 리턴

STDDEV_SAMP 표준편차

THIS_MONTH 지정 월의 1일 날짜

THIS_QUARTER 지정 분기의 1일 날짜 

THIS_WEEK 지정 주의 첫 날짜(일요일) 

THIS_YEAR 지정 날짜의 연도에서 1일 날짜

TO_HEX 숫자를 16진수로 리턴

VARIANCE_SAMP 분산값

WEEKS_BETWEEN 두 날짜 간 주(week) 차이 리턴

WIDTH_BUCKET 막대 그래프 작성시 사용

YEARS_BETWEEN 두 날짜 간 년(year) 차이 리턴

YMD_BETWEEN 두 날짜 간 일(day) 차이 리턴

CREATE FUNCTION (aggregate interface) 사용자 정의 집계함수

offset절  FETCH FIRST절의 OFFSET 옵션(skip rows)

LIMIT  = FETCH FIRST LIMIT…

OFFSET = FETCH FIRST …. OFFSET

ISNULL = IS NULL

ISNOTNULL =IS NOT NULL

DISTRIBUT ON =DISTRIBUTE BY

새 데이터 타입 INT2, INT4, INT8, FLOAT4,FLOAT8, BPCHAR

OVERLAPS predicate 두 기간이 겹치는지 여부 판별

DATASLICEID 칼럼 = 파티션번호

COVAR_POP =COVARIANCE

LOG =LN

POW =POWER

RANDOM =RAND

STDDEV_POP =STDDEV

STRPOS =POSSTR

STRLEFT  =LEFT

STRRIGHT  =RIGHT

VAR_POP  =VARIANCE

VAR_SAMP =VARIAMCE_SAMP

이중 점 표기(NPS호환) 

TRANSLATE(NPS호환)  

Operators (NPS호환)  

select절 칼럼을 Group by절에 사용(NPS호환)  

SQL/PL에 NZPLSQL 언어 사용(NPS호환)  

 

(v11.5)

NOWAIT, WAIT 절 (SELECT, UPDATE, DELETE) 쿼리문에 Lock 대기 시간 설정, 동시성 개선

R언어로 UDX작성  R언어로 UDX 생성

Python으로 UDX작성 Python언어로 UDX 생성

large aggregation 구성변수 count, sum, avg 결과 데이터타입 자동 변환

RENAME INDEX 인덱스명 변경

SKIP LOCKED DATA Lock 걸린 레코드는 Skip 처리(Row only)

TRUNCATE TABLE 에 IMMEDIATE  생략 Immediate 생력가능(Columnar only) DB2COMPOPT=LOCKAVOID_EXT_CATSCANS 카탈로그 테이블 조회시 CC 적용

ASCII_STR 문자열의 ASCII 버전리턴, = ASCIISTR 

NCHR UTF-32  유니코드 문자리턴. = UNICHR

TO_MULTI_BYTE 단일 바이트 문자를 멀티 바이트 (Full width)에 해당하는유니 코드 문자열로 리턴

UNICODE_STR 지정된 옵션에 따라 유니코드 UTF-8 형식 또는 UTF-16 형식의 문자열 리턴. = UNISTR TO_SINGLE_BYTE 멀티바이트 문자를 싱글바이트 문자로 Netezza timestamp 형식 네티자 timestamp 데이터 인식 (MM-DD-YYYY HH24:MM:SS) 

With절에 nested-table-reference 및 파생 테이블 사용 공통 테이블 표현식(WITH절)의 쿼리 본문에 nested-table-reference 및 파생된 테이블 사용.  단 술어의 서브쿼리에는 제외

Null 순서 지정 정렬 시 Null값을 가장 작은값으로 인식 (DB2_REVERSE_NULL_ORDER=TRUE)

COMPRESS GZIP 옵션이 있는 외부 테이블의 .gz 제약 해제 

NPS 모드에서 empty string Decimal('') 은 0을 리턴하도록 변경

NPS 모드의 DAYS_BETWEEN, WEEK_BETWEEN, MONTHS_BETWEEN, HOURS_BETWEEN, MINUTES_BETWEEN, SECONDS_BETWEEN 스칼라 함수 동작 변경 항상 양의 정수 리턴되도록 변경

외부 테이블 에 LFINSTRING 옵션 LF/newline을 레코드 delimeter로 인식

DBMS_LOCK 모듈 Oracle PL/SQL 호환성

where절에 컬럼 별명 사용 NPS모드

+ 기호 (Outerjoin) 기본 지원 호환벡터 설정 없이 기본기능

Drop table IF EXISTS 문 테이블이 없는 경우 SQL 에러 방지

DBMS_APPLICATION_INFO 모듈 Client정보 추출(READ_CLIENT_INFO, READ_MODULE,SET_CLIENT_INFO, SET_ACTION,SET_SESSION_LONGOPS)

UTL_RAW 모듈 VARBINARY 타입 데이터 작업(BIT_AND, BIT_OR,BIT_XOR,BIT_COMPLEMENT, CAST_FROM_BINARY_INTEGER,  COMPARE,CAST_TO_RAW,CAST_TO_VARCHAR2, CAST_FROM_NUMBER, CAST_TO_NUMBER,CONCAT,COPIES,LENGTH, REVERS,SUBSTR,XRANGE, CAST_FROM_BINARY_DOUBLE,CAST_FROM_BINARY_FORMAT, CAST_FROM_BINARY_INTEGER,CAST_TO_BINARY_DOUBLE,CAST_FROM_BINARY_FORMAT)

 

이상으로 최근 버전에서 버전 별 추가로 지원되는 SQL 함수에 대해 알아보았습니다.

'Db2 for LUW' 카테고리의 다른 글

Db2 OLTP 아키텍처 구성  (0) 2022.12.05
Db2 Trace Facility  (0) 2022.11.29
외부(External) 테이블  (0) 2022.11.23
Db2 라이센스(LUW)  (0) 2022.11.08
사용중인 DB 암호화로 데이터 보호하기  (0) 2022.10.27

관련글 더보기

댓글 영역