최종 수정: 에
TO_BASE64
설명
TO_BASE64 함수는 입력 문자열을 Base64로 인코딩된 형식으로 변환합니다. Base64는 출력 가능한 64개의 문자를 기반으로 하는 인코딩 방식으로, 이메일, URL 매개변수, JSON 등과 같이 바이너리 데이터를 지원하지 않는 프로토콜에서 데이터를 전송하는 데 주로 사용됩니다. 이 함수는 RFC 4648 표준을 따르며, 표준 Base64 문자 집합(A-Z, a-z, 0-9, +, /)과 패딩 문자(=)를 사용합니다.
구문
TO_BASE64(<str>)
매개변수
| 매개변수 | 설명 |
|---|---|
<str> | Base64로 인코딩할 문자열입니다. 타입: VARCHAR |
반환 값
Base64로 인코딩된 문자열을 나타내는 VARCHAR 타입을 반환합니다.
인코딩 규칙:
- 표준 Base64 문자 집합을 사용합니다: A-Z, a-z, 0-9, +, /
- =를 패딩 문자로 사용하여 출력 길이가 4의 배수가 되도록 합니다
- UTF-8 멀티바이트 문자를 올바르게 인코딩합니다
- 출력 문자열에는 출력 가능한 ASCII 문자만 포함됩니다
특수한 경우:
- 입력이 NULL이면 NULL을 반환합니다
- 입력이 빈 문자열이면 빈 문자열을 반환합니다
- UTF-8 문자 인코딩을 자동으로 처리합니다
- 출력 길이는 항상 입력 바이트 수의 4/3배입니다(4의 배수로 올림)
예제
- 기본 문자 인코딩
SELECT TO_BASE64('1'), TO_BASE64('A');
+----------------+----------------+
| TO_BASE64('1') | TO_BASE64('A') |
+----------------+----------------+
| MQ== | QQ== |
+----------------+----------------+
- 여러 문자로 구성된 문자열 인코딩
SELECT TO_BASE64('234'), TO_BASE64('Hello');
+------------------+--------------------+
| TO_BASE64('234') | TO_BASE64('Hello') |
+------------------+--------------------+
| MjM0 | SGVsbG8= |
+------------------+--------------------+
- NULL 및 빈 문자열 처리
SELECT TO_BASE64(NULL), TO_BASE64('');
+-----------------+---------------+
| TO_BASE64(NULL) | TO_BASE64('') |
+-----------------+---------------+
| NULL | |
+-----------------+---------------+
- 긴 문자열 인코딩
SELECT TO_BASE64('Hello World'), TO_BASE64('The quick brown fox');
+-------------------------+-------------------------------+
| TO_BASE64('Hello World') | TO_BASE64('The quick brown fox') |
+-------------------------+-------------------------------+
| SGVsbG8gV29ybGQ= | VGhlIHF1aWNrIGJyb3duIGZveA== |
+-------------------------+-------------------------------+
- 숫자 및 특수 문자
SELECT TO_BASE64('123456'), TO_BASE64('!@#$%^&*()');
+---------------------+------------------------+
| TO_BASE64('123456') | TO_BASE64('!@#$%^&*()') |
+---------------------+------------------------+
| MTIzNDU2 | IUAjJCVeJiooKQ== |
+---------------------+------------------------+
- UTF-8 멀티바이트 문자
SELECT TO_BASE64('ṭṛì'), TO_BASE64('ḍḍumai hello');
+-------------------+---------------------------+
| TO_BASE64('ṭṛì') | TO_BASE64('ḍḍumai hello') |
+-------------------+---------------------------+
| 4bmt4bmbw6w= | 4bmN4bmNdW1haSBoZWxsbw== |
+-------------------+---------------------------+
- 이메일 주소 인코딩
SELECT TO_BASE64('user@example.com'), TO_BASE64('admin.test@company.org');
+------------------------------+-----------------------------------+
| TO_BASE64('user@example.com') | TO_BASE64('admin.test@company.org') |
+------------------------------+-----------------------------------+
| dXNlckBleGFtcGxlLmNvbQ== | YWRtaW4udGVzdEBjb21wYW55Lm9yZw== |
+------------------------------+-----------------------------------+
- JSON 데이터 인코딩
SELECT TO_BASE64('{"name":"John","age":30}'), TO_BASE64('[1,2,3,4,5]');
+--------------------------------------+----------------------+
| TO_BASE64('{"name":"John","age":30}') | TO_BASE64('[1,2,3,4,5]') |
+--------------------------------------+----------------------+
| eyJuYW1lIjoiSm9obiIsImFnZSI6MzB9 | WzEsMiwzLDQsNV0= |
+--------------------------------------+----------------------+
- 길이가 다른 문자열과 패딩
SELECT TO_BASE64('a'), TO_BASE64('ab'), TO_BASE64('abc');
+----------------+-----------------+------------------+
| TO_BASE64('a') | TO_BASE64('ab') | TO_BASE64('abc') |
+----------------+-----------------+------------------+
| YQ== | YWI= | YWJj |
+----------------+-----------------+------------------+
키워드
TO_BASE64, BASE64