Binary 함수와 연산자

Binary 함수와 연산자

이진(binary) 데이터를 다루는 함수와 연산자예요. 연결, 인코딩, 해싱, HMAC 계산 등 이진값 처리에 써요.

출처: 문서

본문

이진 연산자 (Binary operators)

|| 연산자는 연결(concatenation)을 수행해요.

이진 함수 (Binary functions)

concat(binary1, ..., binaryN) → varbinary

binary1, binary2, ..., binaryN의 연결 결과를 반환해요. 이 함수는 SQL 표준 연결 연산자(||)와 같은 기능을 제공해요.

length(binary) → bigint

binary의 길이를 바이트 단위로 반환해요.

lpad(binary, size, padbinary) → varbinary

binarypadbinarysize 바이트까지 왼쪽 패딩해요. sizebinary의 길이보다 작으면 결과는 size 문자로 잘려요. size는 음수이면 안 되고 padbinary는 비어 있으면 안 돼요.

rpad(binary, size, padbinary) → varbinary

binarypadbinarysize 바이트까지 오른쪽 패딩해요. sizebinary의 길이보다 작으면 결과는 size 문자로 잘려요. size는 음수이면 안 되고 padbinary는 비어 있으면 안 돼요.

substr(binary, start) → varbinary

시작 위치 start부터 binary의 나머지를 반환해요. 위치는 바이트 단위로 측정하고 1부터 시작해요. 음수 시작 위치는 문자열 끝을 기준으로 해석돼요.

substr(binary, start, length) → varbinary

시작 위치 start부터 length 길이만큼 binary의 부분 문자열을 반환해요. 위치는 바이트 단위로 측정하고 1부터 시작해요. 음수 시작 위치는 문자열 끝을 기준으로 해석돼요.

reverse(binary) → varbinary

binary의 바이트를 역순으로 바꾼 결과를 반환해요.

Base64 인코딩 함수 (Base64 encoding functions)

Base64 함수는 RFC 4648에 명시된 인코딩을 구현해요.

from_base64(string) → varbinary

base64로 인코딩된 string에서 이진 데이터를 디코딩해요.

to_base64(binary) → varchar

binary를 base64 문자열 표현으로 인코딩해요.

from_base64url(string) → varbinary

URL 안전 알파벳을 사용해 base64로 인코딩된 string에서 이진 데이터를 디코딩해요.

to_base64url(binary) → varchar

URL 안전 알파벳을 사용해 binary를 base64 문자열 표현으로 인코딩해요.

from_base32(string) → varbinary

base32로 인코딩된 string에서 이진 데이터를 디코딩해요.

to_base32(binary) → varchar

binary를 base32 문자열 표현으로 인코딩해요.

Hex 인코딩 함수 (Hex encoding functions)

from_hex(string) → varbinary

hex로 인코딩된 string에서 이진 데이터를 디코딩해요.

to_hex(binary) → varchar

binary를 hex 문자열 표현으로 인코딩해요.

정수 인코딩 함수 (Integer encoding functions)

from_big_endian_32(binary) → integer

32비트 2의 보수 빅엔디언 binary를 디코딩해요. 입력은 정확히 4바이트여야 해요.

to_big_endian_32(integer) → varbinary

integer를 32비트 2의 보수 빅엔디언 형식으로 인코딩해요.

from_big_endian_64(binary) → bigint

64비트 2의 보수 빅엔디언 binary를 디코딩해요. 입력은 정확히 8바이트여야 해요.

to_big_endian_64(bigint) → varbinary

bigint를 64비트 2의 보수 빅엔디언 형식으로 인코딩해요.

부동소수점 인코딩 함수 (Floating-point encoding functions)

from_ieee754_32(binary) → real

IEEE 754 단정밀도(single-precision) 부동소수점 형식의 32비트 빅엔디언 binary를 디코딩해요. 입력은 정확히 4바이트여야 해요.

to_ieee754_32(real) → varbinary

IEEE 754 단정밀도 부동소수점 형식에 따라 real을 32비트 빅엔디언 이진으로 인코딩해요.

from_ieee754_64(binary) → double

IEEE 754 배정밀도(double-precision) 부동소수점 형식의 64비트 빅엔디언 binary를 디코딩해요. 입력은 정확히 8바이트여야 해요.

to_ieee754_64(double) → varbinary

IEEE 754 배정밀도 부동소수점 형식에 따라 double을 64비트 빅엔디언 이진으로 인코딩해요.

해싱 함수 (Hashing functions)

crc32(binary) → bigint

binary의 CRC-32를 계산해요. 일반 목적 해싱에는 xxhash64()를 사용해요. 훨씬 빠르고 품질이 더 좋은 해시를 만들어요.

md5(binary) → varbinary

binary의 MD5 해시를 계산해요.

sha1(binary) → varbinary

binary의 SHA1 해시를 계산해요.

sha256(binary) → varbinary

binary의 SHA256 해시를 계산해요.

sha512(binary) → varbinary

binary의 SHA512 해시를 계산해요.

spooky_hash_v2_32(binary) → varbinary

binary의 32비트 SpookyHashV2 해시를 계산해요.

spooky_hash_v2_64(binary) → varbinary

binary의 64비트 SpookyHashV2 해시를 계산해요.

xxhash64(binary) → varbinary

binary의 xxHash64 해시를 계산해요.

murmur3(binary) → varbinary

binary의 128비트 MurmurHash3 해시를 계산해요.

SELECT murmur3(from_base64('aaaaaa'));
-- ba 58 55 63 55 69 b4 2f 49 20 37 2c a0 e3 96 ef

HMAC 함수 (HMAC functions)

hmac_md5(binary, key) → varbinary

주어진 keybinary의 MD5 HMAC을 계산해요.

hmac_sha1(binary, key) → varbinary

주어진 keybinary의 SHA1 HMAC을 계산해요.

hmac_sha256(binary, key) → varbinary

주어진 keybinary의 SHA256 HMAC을 계산해요.

hmac_sha512(binary, key) → varbinary

주어진 keybinary의 SHA512 HMAC을 계산해요.

더 알아보기 (Learn more)

문자열을 이진 값처럼 다루고 싶다면 문자열 함수 문서를 함께 참고해 보세요.