All Products
Search
Document Center

AnalyticDB:Fungsi biner dengan panjang variabel

Last Updated:Mar 29, 2026

Fungsi biner dengan panjang variabel memproses data tipe biner seperti BINARY, VARBINARY, dan BLOB. Fungsi ini digunakan untuk mengenkripsi dan mendekripsi data, mengompresi dan mendekompresi string, meng-encode dan mendekode nilai, menghitung hash, serta memanipulasi string biner.

Semua contoh dalam topik ini menggunakan nilai kembali yang dihasilkan dari Data Management (DMS). Nilai kembali dapat berbeda di client lain karena perbedaan penguraian di sisi client. Sebagai contoh, 'China' diurai sebagai 0x4368696E61 oleh beberapa client.

Ikhtisar fungsi

Enkripsi dan dekripsi

FunctionDescriptionReturn type
AES_DECRYPT(X, Y)Mendekripsi X menggunakan algoritma Advanced Encryption Standard (AES) dengan Y sebagai kunciVARBINARY
AES_DECRYPT_MY(X, Y)Mendekripsi X menggunakan AES dengan Y sebagai kunci. Kompatibel dengan MySQL — mendekripsi data yang dienkripsi di MySQL. Memerlukan V3.1.10.0 atau versi lebih baruVARBINARY
AES_ENCRYPT(X, Y)Mengenkripsi X menggunakan AES dengan Y sebagai kunciVARBINARY
AES_ENCRYPT_MY(X, Y)Mengenkripsi X menggunakan AES dengan Y sebagai kunci. Kompatibel dengan MySQL — data yang dienkripsi dengan fungsi ini dapat didekripsi di MySQL. Memerlukan V3.1.10.0 atau versi lebih baruVARBINARY
ENCRYPT(X, Y)Mengenkripsi X dengan Y sebagai nilai saltBLOB

Kompresi dan dekompresi

FunctionDescriptionReturn typeVersion
COMPRESS(X)Mengompresi X dan mengembalikan hasilnya sebagai string binerVARBINARY
UNCOMPRESS(X)Mendekompresi X, yang harus dikompresi oleh COMPRESS()BLOB
UNCOMPRESSED_LENGTH(X)Mengembalikan panjang X sebelum dikompresiLONG
GZIP(X)Mengompresi X menggunakan format GZIP dan mengembalikan hasilnya sebagai string binerVARBINARYV3.1.9.3+
GUNZIP(X)Mendekompresi X menggunakan format GZIP dan mengembalikan hasilnya sebagai string binerVARBINARYV3.1.9.3+
ZIP(X)Mengompresi X menggunakan format ZIP dan mengembalikan hasilnya sebagai string binerVARBINARYV3.1.9.3+
UNZIP(X)Mendekompresi X menggunakan format ZIP dan mengembalikan hasilnya sebagai string binerVARBINARYV3.1.9.3+

Encoding dan decoding

FunctionDescriptionReturn type
HEX(X)Mengonversi X ke string heksadesimalVARCHAR
UNHEX(X)Menginterpretasikan pasangan karakter dalam X sebagai nilai heksadesimal, mengonversinya ke byte, dan mengembalikan hasilnya sebagai string binerVARBINARY
FROM_BASE64(X)Mendekode string X yang di-encode Base64 dan mengembalikan hasilnyaBLOB
TO_BASE64(X)Meng-encode X dalam format Base64 dan mengembalikan hasilnyaVARCHAR

Hashing dan checksum

FunctionDescriptionReturn type
MD5(X)Mengembalikan hash message-digest algorithm 5 (MD5) dari XVARCHAR
SHA1(X)Mengembalikan checksum Secure Hash Algorithm 1 (SHA-1) dari XVARCHAR
SHA2(X, Y)Mengembalikan checksum SHA-2 dari X. Y menentukan panjang bit: 224, 256, 384, 512, atau 0VARCHAR
CRC32(X)Mengembalikan kode cyclic redundancy check (CRC) dari XLONG

Manipulasi string

FunctionDescriptionReturn type
CHAR_LENGTH(X)Mengembalikan panjang X diukur dalam karakterLONG
LENGTH(X)Mengembalikan panjang X diukur dalam byteLONG
LEFT(X, Y)Mengembalikan Y karakter paling kiri dari XBLOB
RIGHT(X, Y)Mengembalikan Y karakter paling kanan dari XVARBINARY
SUBSTR(X, Y[, Z])Mengembalikan substring yang dimulai pada posisi Y. Z menentukan panjangnyaVARBINARY
LPAD(X, Y, Z)Melakukan left-pad pada X dengan Z hingga panjang total Y karakter. Memotong X menjadi Y karakter jika X lebih panjang dari YVARBINARY
RPAD(X, Y, Z)Melakukan right-pad pada X dengan Z hingga panjang total Y karakter. Memotong X menjadi Y karakter jika X lebih panjang dari YVARBINARY
LTRIM(X)Menghapus spasi awal dari XBLOB
RTRIM(X)Menghapus spasi akhir dari XBLOB
TRIM(X)Menghapus spasi awal dan akhir dari XBLOB
LOWER(X)Mengembalikan X dalam huruf kecilVARBINARY
UPPER(X)Mengembalikan X dalam huruf besarVARBINARY
REPEAT(X, Y)Mengembalikan X yang diulang sebanyak Y kaliVARBINARY
REVERSE(X)Mengembalikan X dengan urutan karakter terbalikVARBINARY
ORD(X)Mengembalikan kode karakter paling kiri dari X ketika karakter tersebut merupakan karakter multibyteLONG

Catatan penggunaan

  • Output spesifik client: Nilai kembali dapat berbeda antar client karena perbedaan perilaku penguraian. Contoh dalam topik ini menggunakan output dari DMS.

  • Persyaratan versi: GUNZIP, GZIP, UNZIP, dan ZIP memerlukan V3.1.9.3 atau versi lebih baru. AES_DECRYPT_MY dan AES_ENCRYPT_MY memerlukan V3.1.10.0 atau versi lebih baru.

    • Untuk memeriksa versi minor kluster Data Lakehouse Edition, jalankan SELECT adb_version();. Untuk memperbarui, hubungi dukungan teknis.

    • Untuk melihat atau memperbarui versi minor kluster Data Warehouse Edition, lihat Perbarui versi minor kluster.

  • AES_ENCRYPT vs AES_ENCRYPT_MY: Gunakan AES_ENCRYPT ketika enkripsi dan dekripsi dilakukan sepenuhnya dalam AnalyticDB for MySQL. Gunakan AES_ENCRYPT_MY ketika data terenkripsi harus dapat didekripsi di MySQL, atau saat mendekripsi data yang dienkripsi di MySQL.

  • Perilaku NULL: UNHEX() mengembalikan NULL ketika input berisi karakter di luar rentang heksadesimal (0–9, A–F).

  • Penyimpanan hasil biner: Fungsi yang mengembalikan VARBINARY atau BLOB dapat menghasilkan nilai byte arbitrer. Untuk menampilkan hasil biner sebagai teks yang dapat dibaca, bungkus output dengan HEX().

AES_DECRYPT

AES_DECRYPT(VARBINARY X, VARCHAR Y)

Mendekripsi X menggunakan AES dengan Y sebagai kunci.

Contoh:

SELECT HEX(AES_DECRYPT(AES_ENCRYPT(CAST('China' AS VARBINARY), '0123'),'0123'));

Hasil berikut dikembalikan:

+-----------------------------------------------------------------------------+
| HEX(AES_DECRYPT(AES_ENCRYPT(CAST('China' AS VARBINARY), '0123'),'0123'))    |
+-----------------------------------------------------------------------------+
|   4368696E61                                                                |
+-----------------------------------------------------------------------------+
SELECT UNZIP(ZIP(CAST('China' AS VARBINARY)));

Hasil berikut dikembalikan:

+---------------------------------------+
| UNZIP(ZIP(CAST('China' AS VARBINARY)))|
+---------------------------------------+
| China                                 | 
+---------------------------------------+
SELECT UNZIP(ZIP(CAST('China' AS VARBINARY)));

Hasil berikut dikembalikan:

+---------------------------------------+
| UNZIP(ZIP(CAST('China' AS VARBINARY)))|
+---------------------------------------+
| China                                 | 
+---------------------------------------+
SELECT HEX(GZIP(CAST('China' AS VARBINARY)));

Hasil berikut dikembalikan:

+------------------------------------------------------+
| HEX(GZIP(CAST('China' AS VARBINARY)))                |
+------------------------------------------------------+
|1F8B080000000000000073CEC8CC4B040020ED2EA105000000    | 
+------------------------------------------------------+
SELECT GUNZIP(GZIP(CAST('China' AS VARBINARY)));

Hasil berikut dikembalikan:

+--------------------------------------------+
| GUNZIP(GZIP(CAST('China' AS VARBINARY)))   |
+--------------------------------------------+
| China                                      |  
+--------------------------------------------+
SELECT UNHEX(CAST('China' AS VARBINARY));

Hasil berikut dikembalikan:

+------------------------------------+
| UNHEX(CAST('China' AS VARBINARY))  |
+------------------------------------+
| NULL                               |  
+------------------------------------+
SELECT UNCOMPRESSED_LENGTH(COMPRESS(CAST('China' AS VARBINARY)));

Hasil berikut dikembalikan:

+------------------------------------------------------------+
| UNCOMPRESSED_LENGTH(COMPRESS(CAST('China' AS VARBINARY)))  |
+------------------------------------------------------------+
| 5                                                          |
+------------------------------------------------------------+
SELECT UNCOMPRESS(COMPRESS(CAST('China' AS VARBINARY)));

Hasil berikut dikembalikan:

+---------------------------------------------------+
| UNCOMPRESS(COMPRESS(CAST('China' AS VARBINARY)))  |
+---------------------------------------------------+
| China                                             | 
+---------------------------------------------------+
SELECT TRIM(CAST('  China  ' AS VARBINARY));

Hasil berikut dikembalikan:

+---------------------------------------+
| TRIM(CAST('  China  ' AS VARBINARY))  |
+---------------------------------------+
| China                                 | 
+---------------------------------------+
SELECT TO_BASE64(CAST('China' AS VARBINARY));

Hasil berikut dikembalikan:

+----------------------------------------+
| TO_BASE64(CAST('China' AS VARBINARY))  |
+----------------------------------------+
| Q2hpbmE=                               |
+----------------------------------------+
SELECT SHA2(CAST('China' AS VARBINARY),256);

Berikut ini dikembalikan:

+------------------------------------------------------------------+
| SHA2(CAST('China' AS VARBINARY),256)                            |
+------------------------------------------------------------------+
| 10436829032f361a3de50048de41755140e581467bc1895e6c1a17f423e42d10 |
+------------------------------------------------------------------+
SELECT SHA1(CAST('China' AS VARBINARY));

Hasil berikut dikembalikan:

+------------------------------------------+
| SHA1(CAST('China' AS VARBINARY))         |
+------------------------------------------+
| d2eaf2aa1512d6596e0a5bae633537c6b8e779a3 |      
+------------------------------------------+
SELECT RTRIM(CAST('  China  ' AS VARBINARY));

Hasil berikut dikembalikan:

+----------------------------------------+
| RTRIM(CAST('  China  ' AS VARBINARY))  |
+----------------------------------------+
|   China                                | 
+----------------------------------------+
SELECT HEX(RPAD(CAST('China' AS VARBINARY), 4.7,'x'));

Hasil berikut dikembalikan:

+--------------------------------------------------+
| HEX(RPAD(CAST('China' AS VARBINARY), 4.7, 'x'))  |
+--------------------------------------------------+
| 4368696E61                                       | 
+--------------------------------------------------+
SELECT HEX(RIGHT(CAST('China' AS VARBINARY),1));

Hasil berikut dikembalikan:

+--------------------------------------------+
| HEX(RIGHT(CAST('China' AS VARBINARY), 1))  |
+--------------------------------------------+
| 61                                         |
+--------------------------------------------+
SELECT HEX(REVERSE(CAST('China' AS VARBINARY)));

Hasil berikut dikembalikan:

+-------------------------------------------+
| HEX(REVERSE(CAST('China' AS VARBINARY)))  |
+-------------------------------------------+
|  616E696843                               |
+-------------------------------------------+
SELECT HEX(REPEAT(CAST('China' AS VARBINARY),1));

Hasil berikut dikembalikan:

+---------------------------------------------+
| HEX(REPEAT(CAST('China' AS VARBINARY), 1))  |
+---------------------------------------------+
|  4368696E61                                 | 
+---------------------------------------------+
SELECT ORD(CAST('China' AS VARBINARY));

Hasil berikut dikembalikan:

+----------------------------------+
| ORD(CAST('China' AS VARBINARY))  |
+----------------------------------+
|67                                | 
+----------------------------------+
SELECT MD5(CAST('China' AS VARBINARY));

Hasil berikut dikembalikan:

+----------------------------------+
| MD5(CAST('China' AS VARBINARY))  |
+----------------------------------+
| ae54a5c026f31ada088992587d92cb3a | 
+----------------------------------+
SELECT LTRIM(CAST('  China  ' AS VARBINARY));

Hasil berikut dikembalikan:

+----------------------------------------+
| LTRIM(CAST('  China  ' AS VARBINARY))  |
+----------------------------------------+
| China                                  |
+----------------------------------------+
SELECT HEX(LPAD(CAST('China' AS VARBINARY), 7,'-'));

Hasil berikut dikembalikan:

+------------------------------------------------+
| HEX(LPAD(CAST('China' AS VARBINARY), 7, '-'))  |
+------------------------------------------------+
| 2D2D4368696E61                                 | 
+------------------------------------------------+
SELECT LEFT(CAST('China' AS VARBINARY),1000);

Hasil berikut dikembalikan:

+-----------------------------------------+
| LEFT(CAST('China' AS VARBINARY), 1000)  |
+-----------------------------------------+
| China                                   | 
+-----------------------------------------+
SELECT HEX(CAST('China' AS VARBINARY));

Hasil berikut dikembalikan:

+----------------------------------+
| HEX(CAST('China' AS VARBINARY))  |
+----------------------------------+
|  4368696E61                      | 
+----------------------------------+
SELECT CRC32(CAST('China' AS VARBINARY));

Hasil berikut dikembalikan:

+------------------------------------+
| CRC32(CAST('China' AS VARBINARY))  |
+------------------------------------+
| 2704207136                         | 
+------------------------------------+
SELECT HEX(COMPRESS(CAST('China' AS VARBINARY)));               

Hasil berikut dikembalikan:

+--------------------------------------------+
| HEX(COMPRESS(CAST('China' AS VARBINARY)))  |
+--------------------------------------------+
|  05000000789C73CEC8CC4B0400056C01E4        |
+--------------------------------------------+
SELECT HEX(AES_ENCRYPT_MY('China', 'key_string'));

Hasil berikut dikembalikan:

+-------------------------------------------------------+
|HEX(AES_ENCRYPT_MY('China', 'key_string'))             |
+-------------------------------------------------------+
|CF3AB34E18CD73CE37D46AD2588BA258                       | 
+-------------------------------------------------------+
SELECT HEX(AES_ENCRYPT(CAST('China' AS VARBINARY), '0123'));

Hasil berikut dikembalikan:

+-------------------------------------------------------+
|HEX(AES_ENCRYPT(CAST('China' AS VARBINARY), '0123'))   |
+-------------------------------------------------------+
| 6C5CB5E59E3EA58E58CFBE3C76BFBECA                      |
+-------------------------------------------------------+
SELECT HEX(AES_DECRYPT(AES_ENCRYPT(CAST('China' AS VARBINARY), '0123'),'0123'));

Hasil berikut dikembalikan:

+-----------------------------------------------------------------------------+
| HEX(AES_DECRYPT(AES_ENCRYPT(CAST('China' AS VARBINARY), '0123'),'0123'))    |
+-----------------------------------------------------------------------------+
|   4368696E61                                                                |
+-----------------------------------------------------------------------------+
SELECT HEX(AES_DECRYPT(AES_ENCRYPT(CAST('China' AS VARBINARY), '0123'), '0123'));

Output:

+-----------------------------------------------------------------------------+
| HEX(AES_DECRYPT(AES_ENCRYPT(CAST('China' AS VARBINARY), '0123'),'0123'))   |
+-----------------------------------------------------------------------------+
| 4368696E61                                                                  |
+-----------------------------------------------------------------------------+

AES_DECRYPT_MY

Penting

AES_DECRYPT_MY kompatibel dengan MySQL. Gunakan untuk mendekripsi data yang dienkripsi di MySQL. Memerlukan AnalyticDB for MySQL V3.1.10.0 atau versi lebih baru.

AES_DECRYPT_MY(VARBINARY X, VARCHAR Y)

Mendekripsi X menggunakan AES dengan Y sebagai kunci.

Contoh:

SELECT CAST(AES_DECRYPT_MY(UNHEX('CF3AB34E18CD73CE37D46AD2588BA258'), 'key_string') AS CHAR);

Output:

+----------------------------------------------------------------------------------------+
| CAST(AES_DECRYPT_MY(UNHEX('CF3AB34E18CD73CE37D46AD2588BA258'),'key_string') AS CHAR)  |
+----------------------------------------------------------------------------------------+
| China                                                                                  |
+----------------------------------------------------------------------------------------+

AES_ENCRYPT

AES_ENCRYPT(VARBINARY X, VARCHAR Y)

Mengenkripsi X menggunakan AES dengan Y sebagai kunci.

Contoh:

SELECT HEX(AES_ENCRYPT(CAST('China' AS VARBINARY), '0123'));

Output:

+-------------------------------------------------------+
| HEX(AES_ENCRYPT(CAST('China' AS VARBINARY), '0123'))  |
+-------------------------------------------------------+
| 6C5CB5E59E3EA58E58CFBE3C76BFBECA                      |
+-------------------------------------------------------+

AES_ENCRYPT_MY

Penting

AES_ENCRYPT_MY kompatibel dengan MySQL. Data yang dienkripsi dengan fungsi ini dapat didekripsi di MySQL. Memerlukan AnalyticDB for MySQL V3.1.10.0 atau versi lebih baru.

AES_ENCRYPT_MY(VARBINARY X, VARCHAR Y)

Mengenkripsi X menggunakan AES dengan Y sebagai kunci.

Contoh:

SELECT HEX(AES_ENCRYPT_MY('China', 'key_string'));

Output:

+--------------------------------------------+
| HEX(AES_ENCRYPT_MY('China', 'key_string')) |
+--------------------------------------------+
| CF3AB34E18CD73CE37D46AD2588BA258           |
+--------------------------------------------+

CHAR_LENGTH

CHAR_LENGTH(VARBINARY X)

Mengembalikan panjang X diukur dalam karakter.

Contoh:

SELECT CHAR_LENGTH(CAST('ABC' AS VARBINARY));

Output:

+---------------------------------------+
| CHAR_LENGTH(CAST('ABC' AS VARBINARY)) |
+---------------------------------------+
| 3                                     |
+---------------------------------------+

COMPRESS

COMPRESS(VARBINARY X)

Mengompresi X dan mengembalikan hasilnya sebagai string biner. Gunakan HEX() untuk menampilkan hasilnya sebagai teks yang dapat dibaca.

Contoh:

SELECT HEX(COMPRESS(CAST('China' AS VARBINARY)));

Output:

+--------------------------------------------+
| HEX(COMPRESS(CAST('China' AS VARBINARY)))  |
+--------------------------------------------+
| 05000000789C73CEC8CC4B0400056C01E4         |
+--------------------------------------------+

CRC32

CRC32(VARBINARY X)

Mengembalikan kode cyclic redundancy check (CRC) dari X.

Contoh:

SELECT CRC32(CAST('China' AS VARBINARY));

Output:

+------------------------------------+
| CRC32(CAST('China' AS VARBINARY))  |
+------------------------------------+
| 2704207136                         |
+------------------------------------+

ENCRYPT

ENCRYPT(VARBINARY X, VARCHAR Y)

Mengenkripsi X dengan Y sebagai nilai salt.

Contoh:

SELECT ENCRYPT('ABDABC123', 'KEY');

Output:

+-----------------------------+
| ENCRYPT('ABDABC123','KEY')  |
+-----------------------------+
| kezazmcIo.aCw               |
+-----------------------------+

FROM_BASE64

FROM_BASE64(VARBINARY X)

Mendekode string X yang di-encode Base64 dan mengembalikan hasilnya.

Contoh:

SELECT FROM_BASE64(TO_BASE64(CAST('abc' AS VARBINARY)));

Output:

+--------------------------------------------------+
| FROM_BASE64(TO_BASE64(CAST('abc' AS VARBINARY))) |
+--------------------------------------------------+
| abc                                              |
+--------------------------------------------------+

GUNZIP

Penting

Memerlukan AnalyticDB for MySQL V3.1.9.3 atau versi lebih baru.

GUNZIP(VARBINARY X)

Mendekompresi X menggunakan format GZIP dan mengembalikan hasilnya sebagai string biner.

Contoh:

SELECT GUNZIP(GZIP(CAST('China' AS VARBINARY)));

Output:

+------------------------------------------+
| GUNZIP(GZIP(CAST('China' AS VARBINARY))) |
+------------------------------------------+
| China                                    |
+------------------------------------------+

GZIP

Penting

Memerlukan AnalyticDB for MySQL V3.1.9.3 atau versi lebih baru.

GZIP(VARBINARY X)

Mengompresi X menggunakan format GZIP dan mengembalikan hasilnya sebagai string biner. Gunakan HEX() untuk menampilkan hasilnya sebagai teks yang dapat dibaca.

Contoh:

SELECT HEX(GZIP(CAST('China' AS VARBINARY)));

Output:

+----------------------------------------------------------+
| HEX(GZIP(CAST('China' AS VARBINARY)))                    |
+----------------------------------------------------------+
| 1F8B080000000000000073CEC8CC4B040020ED2EA105000000       |
+----------------------------------------------------------+

HEX

HEX(VARBINARY X)

Mengonversi X ke string heksadesimal.

Contoh:

SELECT HEX(CAST('China' AS VARBINARY));

Output:

+----------------------------------+
| HEX(CAST('China' AS VARBINARY))  |
+----------------------------------+
| 4368696E61                       |
+----------------------------------+

LEFT

LEFT(VARBINARY X, BIGINT Y)
LEFT(VARBINARY X, DOUBLE Y)

Mengembalikan Y karakter paling kiri dari X.

Contoh:

SELECT LEFT(CAST('China' AS VARBINARY), 1000);

Output:

+-----------------------------------------+
| LEFT(CAST('China' AS VARBINARY), 1000)  |
+-----------------------------------------+
| China                                   |
+-----------------------------------------+

LENGTH

LENGTH(VARBINARY X)

Mengembalikan panjang X diukur dalam byte.

Contoh:

SELECT LENGTH(CAST('ABC' AS VARBINARY));

Output:

+----------------------------------+
| LENGTH(CAST('ABC' AS VARBINARY)) |
+----------------------------------+
| 3                                |
+----------------------------------+

LOWER

LOWER(VARBINARY X)

Mengembalikan X dalam huruf kecil.

Contoh:

SELECT LOWER(CAST('ABC' AS VARBINARY));

Output:

+---------------------------------+
| LOWER(CAST('ABC' AS VARBINARY)) |
+---------------------------------+
| abc                             |
+---------------------------------+

LPAD

LPAD(VARBINARY X, BIGINT Y, VARCHAR Z)
LPAD(VARBINARY X, DOUBLE Y, VARCHAR Z)

Melakukan left-pad pada X dengan Z hingga panjang total Y karakter. Jika X lebih panjang dari Y karakter, hasilnya dipotong menjadi Y karakter.

Contoh:

SELECT HEX(LPAD(CAST('China' AS VARBINARY), 7, '-'));

Output:

+------------------------------------------------+
| HEX(LPAD(CAST('China' AS VARBINARY), 7, '-'))  |
+------------------------------------------------+
| 2D2D4368696E61                                 |
+------------------------------------------------+

LTRIM

LTRIM(VARBINARY X)

Menghapus spasi awal dari X.

Contoh:

SELECT LTRIM(CAST('  China  ' AS VARBINARY));

Output:

+----------------------------------------+
| LTRIM(CAST('  China  ' AS VARBINARY))  |
+----------------------------------------+
| China                                  |
+----------------------------------------+

MD5

MD5(VARBINARY X)

Mengembalikan hash MD5 dari X.

Contoh:

SELECT MD5(CAST('China' AS VARBINARY));

Output:

+----------------------------------+
| MD5(CAST('China' AS VARBINARY))  |
+----------------------------------+
| ae54a5c026f31ada088992587d92cb3a |
+----------------------------------+

ORD

ORD(VARBINARY X)

Mengembalikan kode karakter paling kiri dari X ketika karakter tersebut merupakan karakter multibyte.

Contoh:

SELECT ORD(CAST('China' AS VARBINARY));

Output:

+----------------------------------+
| ORD(CAST('China' AS VARBINARY))  |
+----------------------------------+
| 67                               |
+----------------------------------+

REPEAT

REPEAT(VARBINARY X, DOUBLE Y)
REPEAT(VARBINARY X, BIGINT Y)

Mengembalikan X yang diulang sebanyak Y kali.

Contoh:

SELECT HEX(REPEAT(CAST('China' AS VARBINARY), 1));

Output:

+---------------------------------------------+
| HEX(REPEAT(CAST('China' AS VARBINARY), 1))  |
+---------------------------------------------+
| 4368696E61                                  |
+---------------------------------------------+

REVERSE

REVERSE(VARBINARY X)

Mengembalikan X dengan urutan karakter terbalik.

Contoh:

SELECT HEX(REVERSE(CAST('China' AS VARBINARY)));

Output:

+-------------------------------------------+
| HEX(REVERSE(CAST('China' AS VARBINARY)))  |
+-------------------------------------------+
| 616E696843                                |
+-------------------------------------------+

RIGHT

RIGHT(VARBINARY X, BIGINT Y)
RIGHT(VARBINARY X, DOUBLE Y)

Mengembalikan Y karakter paling kanan dari X.

Contoh:

SELECT HEX(RIGHT(CAST('China' AS VARBINARY), 1));

Output:

+--------------------------------------------+
| HEX(RIGHT(CAST('China' AS VARBINARY), 1))  |
+--------------------------------------------+
| 61                                         |
+--------------------------------------------+

RPAD

RPAD(VARBINARY X, BIGINT Y, VARCHAR Z)
RPAD(VARBINARY X, DOUBLE Y, VARCHAR Z)

Melakukan right-pad pada X dengan Z hingga panjang total Y karakter. Jika X lebih panjang dari Y karakter, hasilnya dipotong menjadi Y karakter.

Contoh:

SELECT HEX(RPAD(CAST('China' AS VARBINARY), 4.7, 'x'));

Output:

+--------------------------------------------------+
| HEX(RPAD(CAST('China' AS VARBINARY), 4.7, 'x'))  |
+--------------------------------------------------+
| 4368696E61                                       |
+--------------------------------------------------+

RTRIM

RTRIM(VARBINARY X)

Menghapus spasi akhir dari X.

Contoh:

SELECT RTRIM(CAST('  China  ' AS VARBINARY));

Output:

+----------------------------------------+
| RTRIM(CAST('  China  ' AS VARBINARY))  |
+----------------------------------------+
|   China                                |
+----------------------------------------+

SHA1

SHA1(VARBINARY X)

Mengembalikan checksum SHA-1 dari X.

Contoh:

SELECT SHA1(CAST('China' AS VARBINARY));

Output:

+------------------------------------------+
| SHA1(CAST('China' AS VARBINARY))         |
+------------------------------------------+
| d2eaf2aa1512d6596e0a5bae633537c6b8e779a3 |
+------------------------------------------+

SHA2

SHA2(VARBINARY X, INTEGER Y)
SHA2(VARBINARY X, VARCHAR Y)

Mengembalikan checksum SHA-2 dari X. Y menentukan panjang bit output dan harus salah satu dari: 224, 256, 384, 512, atau 0. Varian yang didukung: SHA-224, SHA-256, SHA-384, dan SHA-512.

Contoh:

SELECT SHA2(CAST('China' AS VARBINARY), 256);

Output:

+------------------------------------------------------------------+
| SHA2(CAST('China' AS VARBINARY),256)                             |
+------------------------------------------------------------------+
| 10436829032f361a3de50048de41755140e581467bc1895e6c1a17f423e42d10 |
+------------------------------------------------------------------+

SUBSTR

SUBSTR(VARBINARY X, BIGINT Y, DOUBLE Z)
SUBSTR(VARBINARY X, DOUBLE Y, DOUBLE Z)
SUBSTR(VARBINARY X, BIGINT Y, BIGINT Z)
SUBSTR(VARBINARY X, DOUBLE Y, BIGINT Z)
SUBSTR(VARBINARY X, DOUBLE Y)
SUBSTR(VARBINARY X, BIGINT Y)

Mengembalikan substring dari X yang dimulai pada posisi Y. Z menentukan jumlah karakter yang dikembalikan.

TO_BASE64

TO_BASE64(VARBINARY X)

Meng-encode X dalam format Base64 dan mengembalikan hasilnya.

Contoh:

SELECT TO_BASE64(CAST('China' AS VARBINARY));

Output:

+----------------------------------------+
| TO_BASE64(CAST('China' AS VARBINARY))  |
+----------------------------------------+
| Q2hpbmE=                               |
+----------------------------------------+

TRIM

TRIM(VARBINARY X)

Menghapus spasi awal dan akhir dari X.

Contoh:

SELECT TRIM(CAST('  China  ' AS VARBINARY));

Output:

+---------------------------------------+
| TRIM(CAST('  China  ' AS VARBINARY))  |
+---------------------------------------+
| China                                 |
+---------------------------------------+

UNCOMPRESS

UNCOMPRESS(VARBINARY X)

Mendekompresi X, yang harus dikompresi oleh fungsi COMPRESS().

Contoh:

SELECT UNCOMPRESS(COMPRESS(CAST('China' AS VARBINARY)));

Output:

+---------------------------------------------------+
| UNCOMPRESS(COMPRESS(CAST('China' AS VARBINARY)))  |
+---------------------------------------------------+
| China                                             |
+---------------------------------------------------+

UNCOMPRESSED_LENGTH

UNCOMPRESSED_LENGTH(VARBINARY X)

Mengembalikan panjang X sebelum dikompresi.

Contoh:

SELECT UNCOMPRESSED_LENGTH(COMPRESS(CAST('China' AS VARBINARY)));

Output:

+------------------------------------------------------------+
| UNCOMPRESSED_LENGTH(COMPRESS(CAST('China' AS VARBINARY)))  |
+------------------------------------------------------------+
| 5                                                          |
+------------------------------------------------------------+

UNHEX

UNHEX(VARBINARY X)

Menginterpretasikan pasangan karakter dalam X sebagai nilai heksadesimal, mengonversinya ke byte, dan mengembalikan hasilnya sebagai string biner. Mengembalikan NULL jika input berisi karakter di luar rentang heksadesimal (0–9, A–F).

Contoh:

SELECT UNHEX(CAST('China' AS VARBINARY));

Output:

+------------------------------------+
| UNHEX(CAST('China' AS VARBINARY))  |
+------------------------------------+
| NULL                               |
+------------------------------------+

Hasilnya adalah NULL karena 'China' berisi karakter di luar rentang heksadesimal (0–9, A–F).

UNZIP

Penting

Memerlukan AnalyticDB for MySQL V3.1.9.3 atau versi lebih baru.

UNZIP(VARBINARY X)

Mendekompresi X menggunakan format ZIP dan mengembalikan hasilnya sebagai string biner.

Contoh:

SELECT UNZIP(ZIP(CAST('China' AS VARBINARY)));

Output:

+----------------------------------------+
| UNZIP(ZIP(CAST('China' AS VARBINARY))) |
+----------------------------------------+
| China                                  |
+----------------------------------------+

UPPER

UPPER(VARBINARY X)

Mengembalikan X dalam huruf besar.

Contoh:

SELECT UPPER(CAST('abc' AS VARBINARY));

Output:

+---------------------------------+
| UPPER(CAST('abc' AS VARBINARY)) |
+---------------------------------+
| ABC                             |
+---------------------------------+

ZIP

Penting

Memerlukan AnalyticDB for MySQL V3.1.9.3 atau versi lebih baru.

ZIP(VARBINARY X)

Mengompresi X menggunakan format ZIP dan mengembalikan hasilnya sebagai string biner. Gunakan HEX() untuk menampilkan hasilnya sebagai teks yang dapat dibaca.

Contoh:

SELECT UNZIP(ZIP(CAST('China' AS VARBINARY)));

Output:

+----------------------------------------+
| UNZIP(ZIP(CAST('China' AS VARBINARY))) |
+----------------------------------------+
| China                                  |
+----------------------------------------+