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
| Function | Description | Return type |
|---|---|---|
AES_DECRYPT(X, Y) | Mendekripsi X menggunakan algoritma Advanced Encryption Standard (AES) dengan Y sebagai kunci | VARBINARY |
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 baru | VARBINARY |
AES_ENCRYPT(X, Y) | Mengenkripsi X menggunakan AES dengan Y sebagai kunci | VARBINARY |
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 baru | VARBINARY |
ENCRYPT(X, Y) | Mengenkripsi X dengan Y sebagai nilai salt | BLOB |
Kompresi dan dekompresi
| Function | Description | Return type | Version |
|---|---|---|---|
COMPRESS(X) | Mengompresi X dan mengembalikan hasilnya sebagai string biner | VARBINARY | — |
UNCOMPRESS(X) | Mendekompresi X, yang harus dikompresi oleh COMPRESS() | BLOB | — |
UNCOMPRESSED_LENGTH(X) | Mengembalikan panjang X sebelum dikompresi | LONG | — |
GZIP(X) | Mengompresi X menggunakan format GZIP dan mengembalikan hasilnya sebagai string biner | VARBINARY | V3.1.9.3+ |
GUNZIP(X) | Mendekompresi X menggunakan format GZIP dan mengembalikan hasilnya sebagai string biner | VARBINARY | V3.1.9.3+ |
ZIP(X) | Mengompresi X menggunakan format ZIP dan mengembalikan hasilnya sebagai string biner | VARBINARY | V3.1.9.3+ |
UNZIP(X) | Mendekompresi X menggunakan format ZIP dan mengembalikan hasilnya sebagai string biner | VARBINARY | V3.1.9.3+ |
Encoding dan decoding
| Function | Description | Return type |
|---|---|---|
HEX(X) | Mengonversi X ke string heksadesimal | VARCHAR |
UNHEX(X) | Menginterpretasikan pasangan karakter dalam X sebagai nilai heksadesimal, mengonversinya ke byte, dan mengembalikan hasilnya sebagai string biner | VARBINARY |
FROM_BASE64(X) | Mendekode string X yang di-encode Base64 dan mengembalikan hasilnya | BLOB |
TO_BASE64(X) | Meng-encode X dalam format Base64 dan mengembalikan hasilnya | VARCHAR |
Hashing dan checksum
| Function | Description | Return type |
|---|---|---|
MD5(X) | Mengembalikan hash message-digest algorithm 5 (MD5) dari X | VARCHAR |
SHA1(X) | Mengembalikan checksum Secure Hash Algorithm 1 (SHA-1) dari X | VARCHAR |
SHA2(X, Y) | Mengembalikan checksum SHA-2 dari X. Y menentukan panjang bit: 224, 256, 384, 512, atau 0 | VARCHAR |
CRC32(X) | Mengembalikan kode cyclic redundancy check (CRC) dari X | LONG |
Manipulasi string
| Function | Description | Return type |
|---|---|---|
CHAR_LENGTH(X) | Mengembalikan panjang X diukur dalam karakter | LONG |
LENGTH(X) | Mengembalikan panjang X diukur dalam byte | LONG |
LEFT(X, Y) | Mengembalikan Y karakter paling kiri dari X | BLOB |
RIGHT(X, Y) | Mengembalikan Y karakter paling kanan dari X | VARBINARY |
SUBSTR(X, Y[, Z]) | Mengembalikan substring yang dimulai pada posisi Y. Z menentukan panjangnya | VARBINARY |
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 Y | VARBINARY |
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 Y | VARBINARY |
LTRIM(X) | Menghapus spasi awal dari X | BLOB |
RTRIM(X) | Menghapus spasi akhir dari X | BLOB |
TRIM(X) | Menghapus spasi awal dan akhir dari X | BLOB |
LOWER(X) | Mengembalikan X dalam huruf kecil | VARBINARY |
UPPER(X) | Mengembalikan X dalam huruf besar | VARBINARY |
REPEAT(X, Y) | Mengembalikan X yang diulang sebanyak Y kali | VARBINARY |
REVERSE(X) | Mengembalikan X dengan urutan karakter terbalik | VARBINARY |
ORD(X) | Mengembalikan kode karakter paling kiri dari X ketika karakter tersebut merupakan karakter multibyte | LONG |
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, danZIPmemerlukan V3.1.9.3 atau versi lebih baru.AES_DECRYPT_MYdanAES_ENCRYPT_MYmemerlukan 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_ENCRYPTketika enkripsi dan dekripsi dilakukan sepenuhnya dalam AnalyticDB for MySQL. GunakanAES_ENCRYPT_MYketika 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
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
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
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
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
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
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 |
+----------------------------------------+