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
binary를 padbinary로 size 바이트까지 왼쪽 패딩해요. size가 binary의 길이보다 작으면 결과는 size 문자로 잘려요. size는 음수이면 안 되고 padbinary는 비어 있으면 안 돼요.
rpad(binary, size, padbinary) → varbinary
binary를 padbinary로 size 바이트까지 오른쪽 패딩해요. size가 binary의 길이보다 작으면 결과는 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
주어진 key로 binary의 MD5 HMAC을 계산해요.
hmac_sha1(binary, key) → varbinary
주어진 key로 binary의 SHA1 HMAC을 계산해요.
hmac_sha256(binary, key) → varbinary
주어진 key로 binary의 SHA256 HMAC을 계산해요.
hmac_sha512(binary, key) → varbinary
주어진 key로 binary의 SHA512 HMAC을 계산해요.
더 알아보기 (Learn more)
문자열을 이진 값처럼 다루고 싶다면 문자열 함수 문서를 함께 참고해 보세요.