📣新登場!TiDB Cloud BYOC、TiDB Cloud Filesystem、PostgreSQL-compatible TiDB Cloud Starter がパブリックプレビュー中。このページは自動翻訳されたものです。原文はこちらからご覧ください。

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 構造の中にネストすることもできます。

このページは役に立ちましたか?