📣
TiDB Cloud Premium 开放公测中。为企业级工作负载提供无限扩展、即时弹性伸缩和高级安全保障。此页面由 AI 自动翻译,英文原文请见此处。

Binary



概述

BINARY(别名 VARBINARY)用于存储变长字节序列。与 STRING 不同,其值不会被解释为 UTF-8 文本,因此适合存储摘要、压缩数据或序列化对象等负载。在读写数据时,可以使用 UNHEX、FROM_BASE64 和 TO_HEX 等转换函数对值进行编码或解码。

示例

插入原始字节

CREATE TABLE binary_samples ( id INT, raw BINARY ); INSERT INTO binary_samples VALUES (1, UNHEX('68656c6c6f')), -- "hello" (2, FROM_BASE64('ZGF0YWxha2U=')); -- "datalake"
SELECT id, HEX(raw) AS hex_value, LENGTH(raw) AS byte_len FROM binary_samples ORDER BY id;

结果:

┌────┬──────────────┬──────────┐ │ id │ hex_value │ byte_len │ ├────┼──────────────┼──────────┤ │ 1 │ 68656c6c6f │ 5 │ │ 2 │ 646174616c616b65 │ 8 │ └────┴──────────────┴──────────┘

转换回文本

在需要时,可以将二进制值转换为字符串:

SELECT id, TO_VARCHAR(raw) AS text_value FROM binary_samples ORDER BY id;

结果:

┌────┬─────────────┐ │ id │ text_value │ ├────┼─────────────┤ │ 1 │ hello │ │ 2 │ datalake │ └────┴─────────────┘

二进制列可以接受 NULL 值;当你需要将字节负载与其他数据一起存储时,也可以将其嵌套在 ARRAY、MAP 或 TUPLE 结构中。

文档内容是否有帮助?