Db2는 9.7부터 개발 편의성을 위해 ANSI 표준 외에도 업계에서 많이 사용되는 일반 또는 통계함수들을 지속적으로 추가해 오고 있습니다. 버전 10.5부터 11.5에 이르기까지 추가로 지원되는 함수들에 대해 살펴봅니다.
행 크기 확장 지원 테이블 생성 시 레코드 길이가 페이지의 최대 레코드 길이 초과 가능
인덱스키에서 널 키값 제외 CREATE INDEX문에서 EXCLUDE NULL KEYS 지원
문자열 단위 세분화 문자 데이터 타입에서 단위 지정(octet, codeunits16, codeuints32)
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
select절 칼럼을 Group by절에 사용(NPS호환)
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 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 |
댓글 영역