As funções binárias de comprimento variável processam dados de tipos binários, como BINARY, VARBINARY e BLOB. Use-as para criptografar e descriptografar dados, compactar e descompactar strings, codificar e decodificar valores, calcular hashes e manipular strings binárias.
Todos os exemplos neste tópico usam valores de retorno gerados pelo Data Management (DMS). Os valores de retorno podem variar em outros clientes devido a diferenças na análise do lado do cliente. Por exemplo, alguns clientes analisam 'China' como 0x4368696E61.
Visão geral das funções
Criptografia e descriptografia
|
Função |
Descrição |
Tipo de retorno |
|
Descriptografa X com o algoritmo Advanced Encryption Standard (AES) usando Y como chave |
VARBINARY |
|
|
Descriptografa X com AES usando Y como chave. Compatível com MySQL — descriptografa dados criptografados no MySQL. Requer V3.1.10.0 ou posterior |
VARBINARY |
|
|
Criptografa X com AES usando Y como chave |
VARBINARY |
|
|
Criptografa X com AES usando Y como chave. Compatível com MySQL — permite descriptografar os dados no MySQL. Requer V3.1.10.0 ou posterior |
VARBINARY |
|
|
Criptografa X com Y como valor de salt |
BLOB |
Compactação e descompactação
|
Função |
Descrição |
Tipo de retorno |
Versão |
|
Compacta X e retorna o resultado como string binária |
VARBINARY |
— |
|
|
Descompacta X; exige compactação prévia com |
BLOB |
— |
|
|
Retorna o comprimento original de X antes da compactação |
LONG |
— |
|
|
Compacta X no formato GZIP e retorna o resultado como string binária |
VARBINARY |
V3.1.9.3+ |
|
|
Descompacta X no formato GZIP e retorna a string binária resultante |
VARBINARY |
V3.1.9.3+ |
|
|
Compacta X no formato ZIP e retorna o resultado como string binária |
VARBINARY |
V3.1.9.3+ |
|
|
Descompacta X no formato ZIP e retorna a string binária resultante |
VARBINARY |
V3.1.9.3+ |
Codificação e decodificação
|
Função |
Descrição |
Tipo de retorno |
|
Converte X em string hexadecimal |
VARCHAR |
|
|
Interpreta pares de caracteres em X como valores hexadecimais, converte-os em bytes e retorna o resultado como string binária |
VARBINARY |
|
|
Decodifica a string X em Base64 e retorna o resultado |
BLOB |
|
|
Codifica X em Base64 e retorna o resultado |
VARCHAR |
Hashing e checksums
|
Função |
Descrição |
Tipo de retorno |
|
Retorna o hash MD5 (message-digest algorithm 5) de X |
VARCHAR |
|
|
Retorna o checksum SHA-1 (Secure Hash Algorithm 1) de X |
VARCHAR |
|
|
Retorna o checksum SHA-2 de X. Y define o comprimento em bits: 224, 256, 384, 512 ou 0 |
VARCHAR |
|
|
Retorna o código CRC (cyclic redundancy check) de X |
LONG |
Manipulação de strings
|
Função |
Descrição |
Tipo de retorno |
|
Retorna o comprimento de X em caracteres |
LONG |
|
|
Retorna o comprimento de X em bytes |
LONG |
|
|
Retorna os Y caracteres mais à esquerda de X |
BLOB |
|
|
Retorna os Y caracteres mais à direita de X |
VARBINARY |
|
|
Retorna uma substring a partir da posição Y. Z define o comprimento |
VARBINARY |
|
|
Preenche X à esquerda com Z até totalizar Y caracteres. Trunca X para Y caracteres se X for maior que Y |
VARBINARY |
|
|
Preenche X à direita com Z até totalizar Y caracteres. Trunca X para Y caracteres se X for maior que Y |
VARBINARY |
|
|
Remove espaços iniciais de X |
BLOB |
|
|
Remove espaços finais de X |
BLOB |
|
|
Remove espaços iniciais e finais de X |
BLOB |
|
|
Retorna X em minúsculas |
VARBINARY |
|
|
Retorna X em maiúsculas |
VARBINARY |
|
|
Retorna X repetido Y vezes |
VARBINARY |
|
|
Retorna X com caracteres em ordem inversa |
VARBINARY |
|
|
Retorna o código do caractere mais à esquerda de X quando este for multibyte |
LONG |
Observações de uso
Saída específica do cliente: Os valores de retorno podem variar entre clientes devido a comportamentos distintos de análise. Os exemplos neste tópico usam a saída do DMS.
-
Requisitos de versão: As funções
GUNZIP,GZIP,UNZIPeZIPexigem a versão V3.1.9.3 ou posterior. JáAES_DECRYPT_MYeAES_ENCRYPT_MYrequerem a versão V3.1.10.0 ou posterior.Para verificar a versão secundária de um cluster Data Lakehouse Edition, execute
SELECT adb_version();. Para atualizar, entre em contato com o suporte técnico.Para visualizar ou atualizar a versão secundária de um cluster Data Warehouse Edition, consulte Atualizar a versão secundária de um cluster.
AES_ENCRYPT versus AES_ENCRYPT_MY: Use
AES_ENCRYPTquando tanto a criptografia quanto a descriptografia ocorrerem no AnalyticDB for MySQL. UseAES_ENCRYPT_MYquando os dados criptografados precisarem ser descriptografados no MySQL ou ao descriptografar dados originalmente criptografados no MySQL.Comportamento de NULL: A função
UNHEX()retorna NULL quando a entrada contém caracteres fora do intervalo hexadecimal (0–9, A–F).Armazenamento de resultados binários: Funções que retornam VARBINARY ou BLOB podem produzir valores de byte arbitrários. Para exibir resultados binários como texto legível, envolva a saída em
HEX().
AES_DECRYPT
AES_DECRYPT(VARBINARY X, VARCHAR Y)
Descriptografa X com AES usando Y como chave.
Exemplo:
SELECT HEX(AES_DECRYPT(AES_ENCRYPT(CAST('China' AS VARBINARY), '0123'),'0123'));
Resultado retornado:
+-----------------------------------------------------------------------------+
| HEX(AES_DECRYPT(AES_ENCRYPT(CAST('China' AS VARBINARY), '0123'),'0123')) |
+-----------------------------------------------------------------------------+
| 4368696E61 |
+-----------------------------------------------------------------------------+
SELECT UNZIP(ZIP(CAST('China' AS VARBINARY)));
Resultado retornado:
+---------------------------------------+
| UNZIP(ZIP(CAST('China' AS VARBINARY)))|
+---------------------------------------+
| China |
+---------------------------------------+
SELECT UNZIP(ZIP(CAST('China' AS VARBINARY)));
Resultado retornado:
+---------------------------------------+
| UNZIP(ZIP(CAST('China' AS VARBINARY)))|
+---------------------------------------+
| China |
+---------------------------------------+
SELECT HEX(GZIP(CAST('China' AS VARBINARY)));
Resultado retornado:
+------------------------------------------------------+
| HEX(GZIP(CAST('China' AS VARBINARY))) |
+------------------------------------------------------+
|1F8B080000000000000073CEC8CC4B040020ED2EA105000000 |
+------------------------------------------------------+
SELECT GUNZIP(GZIP(CAST('China' AS VARBINARY)));
Resultado retornado:
+--------------------------------------------+
| GUNZIP(GZIP(CAST('China' AS VARBINARY))) |
+--------------------------------------------+
| China |
+--------------------------------------------+
SELECT UNHEX(CAST('China' AS VARBINARY));
Resultado retornado:
+------------------------------------+
| UNHEX(CAST('China' AS VARBINARY)) |
+------------------------------------+
| NULL |
+------------------------------------+
SELECT UNCOMPRESSED_LENGTH(COMPRESS(CAST('China' AS VARBINARY)));
Resultado retornado:
+------------------------------------------------------------+
| UNCOMPRESSED_LENGTH(COMPRESS(CAST('China' AS VARBINARY))) |
+------------------------------------------------------------+
| 5 |
+------------------------------------------------------------+
SELECT UNCOMPRESS(COMPRESS(CAST('China' AS VARBINARY)));
Resultado retornado:
+---------------------------------------------------+
| UNCOMPRESS(COMPRESS(CAST('China' AS VARBINARY))) |
+---------------------------------------------------+
| China |
+---------------------------------------------------+
SELECT TRIM(CAST(' China ' AS VARBINARY));
Resultado retornado:
+---------------------------------------+
| TRIM(CAST(' China ' AS VARBINARY)) |
+---------------------------------------+
| China |
+---------------------------------------+
SELECT TO_BASE64(CAST('China' AS VARBINARY));
Resultado retornado:
+----------------------------------------+
| TO_BASE64(CAST('China' AS VARBINARY)) |
+----------------------------------------+
| Q2hpbmE= |
+----------------------------------------+
SELECT SHA2(CAST('China' AS VARBINARY),256);
Resultado retornado:
+------------------------------------------------------------------+
| SHA2(CAST('China' AS VARBINARY),256) |
+------------------------------------------------------------------+
| 10436829032f361a3de50048de41755140e581467bc1895e6c1a17f423e42d10 |
+------------------------------------------------------------------+
SELECT SHA1(CAST('China' AS VARBINARY));
Resultado retornado:
+------------------------------------------+
| SHA1(CAST('China' AS VARBINARY)) |
+------------------------------------------+
| d2eaf2aa1512d6596e0a5bae633537c6b8e779a3 |
+------------------------------------------+
SELECT RTRIM(CAST(' China ' AS VARBINARY));
Resultado retornado:
+----------------------------------------+
| RTRIM(CAST(' China ' AS VARBINARY)) |
+----------------------------------------+
| China |
+----------------------------------------+
SELECT HEX(RPAD(CAST('China' AS VARBINARY), 4.7,'x'));
Resultado retornado:
+--------------------------------------------------+
| HEX(RPAD(CAST('China' AS VARBINARY), 4.7, 'x')) |
+--------------------------------------------------+
| 4368696E61 |
+--------------------------------------------------+
SELECT HEX(RIGHT(CAST('China' AS VARBINARY),1));
Resultado retornado:
+--------------------------------------------+
| HEX(RIGHT(CAST('China' AS VARBINARY), 1)) |
+--------------------------------------------+
| 61 |
+--------------------------------------------+
SELECT HEX(REVERSE(CAST('China' AS VARBINARY)));
Resultado retornado:
+-------------------------------------------+
| HEX(REVERSE(CAST('China' AS VARBINARY))) |
+-------------------------------------------+
| 616E696843 |
+-------------------------------------------+
SELECT HEX(REPEAT(CAST('China' AS VARBINARY),1));
Resultado retornado:
+---------------------------------------------+
| HEX(REPEAT(CAST('China' AS VARBINARY), 1)) |
+---------------------------------------------+
| 4368696E61 |
+---------------------------------------------+
SELECT ORD(CAST('China' AS VARBINARY));
Resultado retornado:
+----------------------------------+
| ORD(CAST('China' AS VARBINARY)) |
+----------------------------------+
|67 |
+----------------------------------+
SELECT MD5(CAST('China' AS VARBINARY));
Resultado retornado:
+----------------------------------+
| MD5(CAST('China' AS VARBINARY)) |
+----------------------------------+
| ae54a5c026f31ada088992587d92cb3a |
+----------------------------------+
SELECT LTRIM(CAST(' China ' AS VARBINARY));
Resultado retornado:
+----------------------------------------+
| LTRIM(CAST(' China ' AS VARBINARY)) |
+----------------------------------------+
| China |
+----------------------------------------+
SELECT HEX(LPAD(CAST('China' AS VARBINARY), 7,'-'));
Resultado retornado:
+------------------------------------------------+
| HEX(LPAD(CAST('China' AS VARBINARY), 7, '-')) |
+------------------------------------------------+
| 2D2D4368696E61 |
+------------------------------------------------+
SELECT LEFT(CAST('China' AS VARBINARY),1000);
Resultado retornado:
+-----------------------------------------+
| LEFT(CAST('China' AS VARBINARY), 1000) |
+-----------------------------------------+
| China |
+-----------------------------------------+
SELECT HEX(CAST('China' AS VARBINARY));
Resultado retornado:
+----------------------------------+
| HEX(CAST('China' AS VARBINARY)) |
+----------------------------------+
| 4368696E61 |
+----------------------------------+
SELECT CRC32(CAST('China' AS VARBINARY));
Resultado retornado:
+------------------------------------+
| CRC32(CAST('China' AS VARBINARY)) |
+------------------------------------+
| 2704207136 |
+------------------------------------+
SELECT HEX(COMPRESS(CAST('China' AS VARBINARY)));
Resultado retornado:
+--------------------------------------------+
| HEX(COMPRESS(CAST('China' AS VARBINARY))) |
+--------------------------------------------+
| 05000000789C73CEC8CC4B0400056C01E4 |
+--------------------------------------------+
SELECT HEX(AES_ENCRYPT_MY('China', 'key_string'));
Resultado retornado:
+-------------------------------------------------------+
|HEX(AES_ENCRYPT_MY('China', 'key_string')) |
+-------------------------------------------------------+
|CF3AB34E18CD73CE37D46AD2588BA258 |
+-------------------------------------------------------+
SELECT HEX(AES_ENCRYPT(CAST('China' AS VARBINARY), '0123'));
Resultado retornado:
+-------------------------------------------------------+
|HEX(AES_ENCRYPT(CAST('China' AS VARBINARY), '0123')) |
+-------------------------------------------------------+
| 6C5CB5E59E3EA58E58CFBE3C76BFBECA |
+-------------------------------------------------------+
SELECT HEX(AES_DECRYPT(AES_ENCRYPT(CAST('China' AS VARBINARY), '0123'),'0123'));
Resultado retornado:
+-----------------------------------------------------------------------------+
| HEX(AES_DECRYPT(AES_ENCRYPT(CAST('China' AS VARBINARY), '0123'),'0123')) |
+-----------------------------------------------------------------------------+
| 4368696E61 |
+-----------------------------------------------------------------------------+
SELECT HEX(AES_DECRYPT(AES_ENCRYPT(CAST('China' AS VARBINARY), '0123'), '0123'));
Saída:
+-----------------------------------------------------------------------------+
| HEX(AES_DECRYPT(AES_ENCRYPT(CAST('China' AS VARBINARY), '0123'),'0123')) |
+-----------------------------------------------------------------------------+
| 4368696E61 |
+-----------------------------------------------------------------------------+
AES_DECRYPT_MY
A função AES_DECRYPT_MY é compatível com MySQL. Use-a para descriptografar dados criptografados no MySQL. Requer AnalyticDB for MySQL V3.1.10.0 ou posterior.
AES_DECRYPT_MY(VARBINARY X, VARCHAR Y)
Descriptografa X com AES usando Y como chave.
Exemplo:
SELECT CAST(AES_DECRYPT_MY(UNHEX('CF3AB34E18CD73CE37D46AD2588BA258'), 'key_string') AS CHAR);
Saída:
+----------------------------------------------------------------------------------------+
| CAST(AES_DECRYPT_MY(UNHEX('CF3AB34E18CD73CE37D46AD2588BA258'),'key_string') AS CHAR) |
+----------------------------------------------------------------------------------------+
| China |
+----------------------------------------------------------------------------------------+
AES_ENCRYPT
AES_ENCRYPT(VARBINARY X, VARCHAR Y)
Criptografa X com AES usando Y como chave.
Exemplo:
SELECT HEX(AES_ENCRYPT(CAST('China' AS VARBINARY), '0123'));
Saída:
+-------------------------------------------------------+
| HEX(AES_ENCRYPT(CAST('China' AS VARBINARY), '0123')) |
+-------------------------------------------------------+
| 6C5CB5E59E3EA58E58CFBE3C76BFBECA |
+-------------------------------------------------------+
AES_ENCRYPT_MY
A função AES_ENCRYPT_MY é compatível com MySQL. Permite descriptografar os dados criptografados com esta função no MySQL. Requer AnalyticDB for MySQL V3.1.10.0 ou posterior.
AES_ENCRYPT_MY(VARBINARY X, VARCHAR Y)
Criptografa X com AES usando Y como chave.
Exemplo:
SELECT HEX(AES_ENCRYPT_MY('China', 'key_string'));
Saída:
+--------------------------------------------+
| HEX(AES_ENCRYPT_MY('China', 'key_string')) |
+--------------------------------------------+
| CF3AB34E18CD73CE37D46AD2588BA258 |
+--------------------------------------------+
CHAR_LENGTH
CHAR_LENGTH(VARBINARY X)
Retorna o comprimento de X em caracteres.
Exemplo:
SELECT CHAR_LENGTH(CAST('ABC' AS VARBINARY));
Saída:
+---------------------------------------+
| CHAR_LENGTH(CAST('ABC' AS VARBINARY)) |
+---------------------------------------+
| 3 |
+---------------------------------------+
COMPRESS
COMPRESS(VARBINARY X)
Compacta X e retorna o resultado como string binária. Use HEX() para exibir o resultado como texto legível.
Exemplo:
SELECT HEX(COMPRESS(CAST('China' AS VARBINARY)));
Saída:
+--------------------------------------------+
| HEX(COMPRESS(CAST('China' AS VARBINARY))) |
+--------------------------------------------+
| 05000000789C73CEC8CC4B0400056C01E4 |
+--------------------------------------------+
CRC32
CRC32(VARBINARY X)
Retorna o código CRC (cyclic redundancy check) de X.
Exemplo:
SELECT CRC32(CAST('China' AS VARBINARY));
Saída:
+------------------------------------+
| CRC32(CAST('China' AS VARBINARY)) |
+------------------------------------+
| 2704207136 |
+------------------------------------+
ENCRYPT
ENCRYPT(VARBINARY X, VARCHAR Y)
Criptografa X com Y como valor de salt.
Exemplo:
SELECT ENCRYPT('ABDABC123', 'KEY');
Saída:
+-----------------------------+
| ENCRYPT('ABDABC123','KEY') |
+-----------------------------+
| kezazmcIo.aCw |
+-----------------------------+
FROM_BASE64
FROM_BASE64(VARBINARY X)
Decodifica a string X em Base64 e retorna o resultado.
Exemplo:
SELECT FROM_BASE64(TO_BASE64(CAST('abc' AS VARBINARY)));
Saída:
+--------------------------------------------------+
| FROM_BASE64(TO_BASE64(CAST('abc' AS VARBINARY))) |
+--------------------------------------------------+
| abc |
+--------------------------------------------------+
GUNZIP
Requer AnalyticDB for MySQL V3.1.9.3 ou posterior.
GUNZIP(VARBINARY X)
Descompacta X no formato GZIP e retorna a string binária resultante.
Exemplo:
SELECT GUNZIP(GZIP(CAST('China' AS VARBINARY)));
Saída:
+------------------------------------------+
| GUNZIP(GZIP(CAST('China' AS VARBINARY))) |
+------------------------------------------+
| China |
+------------------------------------------+
GZIP
Requer AnalyticDB for MySQL V3.1.9.3 ou posterior.
GZIP(VARBINARY X)
Compacta X no formato GZIP e retorna o resultado como string binária. Use HEX() para exibir o resultado como texto legível.
Exemplo:
SELECT HEX(GZIP(CAST('China' AS VARBINARY)));
Saída:
+----------------------------------------------------------+
| HEX(GZIP(CAST('China' AS VARBINARY))) |
+----------------------------------------------------------+
| 1F8B080000000000000073CEC8CC4B040020ED2EA105000000 |
+----------------------------------------------------------+
HEX
HEX(VARBINARY X)
Converte X em string hexadecimal.
Exemplo:
SELECT HEX(CAST('China' AS VARBINARY));
Saída:
+----------------------------------+
| HEX(CAST('China' AS VARBINARY)) |
+----------------------------------+
| 4368696E61 |
+----------------------------------+
LEFT
LEFT(VARBINARY X, BIGINT Y)
LEFT(VARBINARY X, DOUBLE Y)
Retorna os Y caracteres mais à esquerda de X.
Exemplo:
SELECT LEFT(CAST('China' AS VARBINARY), 1000);
Saída:
+-----------------------------------------+
| LEFT(CAST('China' AS VARBINARY), 1000) |
+-----------------------------------------+
| China |
+-----------------------------------------+
LENGTH
LENGTH(VARBINARY X)
Retorna o comprimento de X em bytes.
Exemplo:
SELECT LENGTH(CAST('ABC' AS VARBINARY));
Saída:
+----------------------------------+
| LENGTH(CAST('ABC' AS VARBINARY)) |
+----------------------------------+
| 3 |
+----------------------------------+
LOWER
LOWER(VARBINARY X)
Retorna X em minúsculas.
Exemplo:
SELECT LOWER(CAST('ABC' AS VARBINARY));
Saída:
+---------------------------------+
| LOWER(CAST('ABC' AS VARBINARY)) |
+---------------------------------+
| abc |
+---------------------------------+
LPAD
LPAD(VARBINARY X, BIGINT Y, VARCHAR Z)
LPAD(VARBINARY X, DOUBLE Y, VARCHAR Z)
Preenche X à esquerda com Z até totalizar Y caracteres. Se X for maior que Y caracteres, o resultado será truncado para Y caracteres.
Exemplo:
SELECT HEX(LPAD(CAST('China' AS VARBINARY), 7, '-'));
Saída:
+------------------------------------------------+
| HEX(LPAD(CAST('China' AS VARBINARY), 7, '-')) |
+------------------------------------------------+
| 2D2D4368696E61 |
+------------------------------------------------+
LTRIM
LTRIM(VARBINARY X)
Remove espaços iniciais de X.
Exemplo:
SELECT LTRIM(CAST(' China ' AS VARBINARY));
Saída:
+----------------------------------------+
| LTRIM(CAST(' China ' AS VARBINARY)) |
+----------------------------------------+
| China |
+----------------------------------------+
MD5
MD5(VARBINARY X)
Retorna o hash MD5 de X.
Exemplo:
SELECT MD5(CAST('China' AS VARBINARY));
Saída:
+----------------------------------+
| MD5(CAST('China' AS VARBINARY)) |
+----------------------------------+
| ae54a5c026f31ada088992587d92cb3a |
+----------------------------------+
ORD
ORD(VARBINARY X)
Retorna o código do caractere mais à esquerda de X quando este for multibyte.
Exemplo:
SELECT ORD(CAST('China' AS VARBINARY));
Saída:
+----------------------------------+
| ORD(CAST('China' AS VARBINARY)) |
+----------------------------------+
| 67 |
+----------------------------------+
REPEAT
REPEAT(VARBINARY X, DOUBLE Y)
REPEAT(VARBINARY X, BIGINT Y)
Retorna X repetido Y vezes.
Exemplo:
SELECT HEX(REPEAT(CAST('China' AS VARBINARY), 1));
Saída:
+---------------------------------------------+
| HEX(REPEAT(CAST('China' AS VARBINARY), 1)) |
+---------------------------------------------+
| 4368696E61 |
+---------------------------------------------+
REVERSE
REVERSE(VARBINARY X)
Retorna X com caracteres em ordem inversa.
Exemplo:
SELECT HEX(REVERSE(CAST('China' AS VARBINARY)));
Saída:
+-------------------------------------------+
| HEX(REVERSE(CAST('China' AS VARBINARY))) |
+-------------------------------------------+
| 616E696843 |
+-------------------------------------------+
RIGHT
RIGHT(VARBINARY X, BIGINT Y)
RIGHT(VARBINARY X, DOUBLE Y)
Retorna os Y caracteres mais à direita de X.
Exemplo:
SELECT HEX(RIGHT(CAST('China' AS VARBINARY), 1));
Saída:
+--------------------------------------------+
| HEX(RIGHT(CAST('China' AS VARBINARY), 1)) |
+--------------------------------------------+
| 61 |
+--------------------------------------------+
RPAD
RPAD(VARBINARY X, BIGINT Y, VARCHAR Z)
RPAD(VARBINARY X, DOUBLE Y, VARCHAR Z)
Preenche X à direita com Z até totalizar Y caracteres. Se X for maior que Y caracteres, o resultado será truncado para Y caracteres.
Exemplo:
SELECT HEX(RPAD(CAST('China' AS VARBINARY), 4.7, 'x'));
Saída:
+--------------------------------------------------+
| HEX(RPAD(CAST('China' AS VARBINARY), 4.7, 'x')) |
+--------------------------------------------------+
| 4368696E61 |
+--------------------------------------------------+
RTRIM
RTRIM(VARBINARY X)
Remove espaços finais de X.
Exemplo:
SELECT RTRIM(CAST(' China ' AS VARBINARY));
Saída:
+----------------------------------------+
| RTRIM(CAST(' China ' AS VARBINARY)) |
+----------------------------------------+
| China |
+----------------------------------------+
SHA1
SHA1(VARBINARY X)
Retorna o checksum SHA-1 de X.
Exemplo:
SELECT SHA1(CAST('China' AS VARBINARY));
Saída:
+------------------------------------------+
| SHA1(CAST('China' AS VARBINARY)) |
+------------------------------------------+
| d2eaf2aa1512d6596e0a5bae633537c6b8e779a3 |
+------------------------------------------+
SHA2
SHA2(VARBINARY X, INTEGER Y)
SHA2(VARBINARY X, VARCHAR Y)
Retorna o checksum SHA-2 de X. Y define o comprimento de bits da saída e deve ser um dos seguintes: 224, 256, 384, 512 ou 0. Variantes suportadas: SHA-224, SHA-256, SHA-384 e SHA-512.
Exemplo:
SELECT SHA2(CAST('China' AS VARBINARY), 256);
Saída:
+------------------------------------------------------------------+
| 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)
Retorna uma substring de X a partir da posição Y. Z define o número de caracteres a retornar.
TO_BASE64
TO_BASE64(VARBINARY X)
Codifica X em Base64 e retorna o resultado.
Exemplo:
SELECT TO_BASE64(CAST('China' AS VARBINARY));
Saída:
+----------------------------------------+
| TO_BASE64(CAST('China' AS VARBINARY)) |
+----------------------------------------+
| Q2hpbmE= |
+----------------------------------------+
TRIM
TRIM(VARBINARY X)
Remove espaços iniciais e finais de X.
Exemplo:
SELECT TRIM(CAST(' China ' AS VARBINARY));
Saída:
+---------------------------------------+
| TRIM(CAST(' China ' AS VARBINARY)) |
+---------------------------------------+
| China |
+---------------------------------------+
UNCOMPRESS
UNCOMPRESS(VARBINARY X)
Descompacta X; exige compactação prévia com a função COMPRESS().
Exemplo:
SELECT UNCOMPRESS(COMPRESS(CAST('China' AS VARBINARY)));
Saída:
+---------------------------------------------------+
| UNCOMPRESS(COMPRESS(CAST('China' AS VARBINARY))) |
+---------------------------------------------------+
| China |
+---------------------------------------------------+
UNCOMPRESSED_LENGTH
UNCOMPRESSED_LENGTH(VARBINARY X)
Retorna o comprimento original de X antes da compactação.
Exemplo:
SELECT UNCOMPRESSED_LENGTH(COMPRESS(CAST('China' AS VARBINARY)));
Saída:
+------------------------------------------------------------+
| UNCOMPRESSED_LENGTH(COMPRESS(CAST('China' AS VARBINARY))) |
+------------------------------------------------------------+
| 5 |
+------------------------------------------------------------+
UNHEX
UNHEX(VARBINARY X)
Interpreta pares de caracteres em X como valores hexadecimais, converte-os em bytes e retorna o resultado como string binária. Retorna NULL se a entrada contiver caracteres fora do intervalo hexadecimal (0–9, A–F).
Exemplo:
SELECT UNHEX(CAST('China' AS VARBINARY));
Saída:
+------------------------------------+
| UNHEX(CAST('China' AS VARBINARY)) |
+------------------------------------+
| NULL |
+------------------------------------+
O resultado é NULL porque 'China' contém caracteres fora do intervalo hexadecimal (0–9, A–F).
UNZIP
Requer AnalyticDB for MySQL V3.1.9.3 ou posterior.
UNZIP(VARBINARY X)
Descompacta X no formato ZIP e retorna a string binária resultante.
Exemplo:
SELECT UNZIP(ZIP(CAST('China' AS VARBINARY)));
Saída:
+----------------------------------------+
| UNZIP(ZIP(CAST('China' AS VARBINARY))) |
+----------------------------------------+
| China |
+----------------------------------------+
UPPER
UPPER(VARBINARY X)
Retorna X em maiúsculas.
Exemplo:
SELECT UPPER(CAST('abc' AS VARBINARY));
Saída:
+---------------------------------+
| UPPER(CAST('abc' AS VARBINARY)) |
+---------------------------------+
| ABC |
+---------------------------------+
ZIP
Requer AnalyticDB for MySQL V3.1.9.3 ou posterior.
ZIP(VARBINARY X)
Compacta X no formato ZIP e retorna o resultado como string binária. Use HEX() para exibir o resultado como texto legível.
Exemplo:
SELECT UNZIP(ZIP(CAST('China' AS VARBINARY)));
Saída:
+----------------------------------------+
| UNZIP(ZIP(CAST('China' AS VARBINARY))) |
+----------------------------------------+
| China |
+----------------------------------------+