MySQLのBase64エンコード・デコード完全ガイド!TO_BASE64とFROM_BASE64の使い方
MySQLでは、文字列をBase64形式にエンコード・デコードするための組み込み関数として、以下の2つが用意されています。
- TO_BASE64() … 文字列をBase64形式にエンコードする
- FROM_BASE64() … Base64形式の文字列を元の値にデコードする
この記事では、それぞれの構文と実際の使用例を、初心者にもわかりやすく解説します。
Base64エンコード・デコードの基本構文
まずは基本となる構文を確認しましょう。エンコードを行う場合はTO_BASE64()を使用します。
SELECT TO_BASE64(任意の値) AS エイリアス名;
デコードを行う場合はFROM_BASE64()を使用します。
SELECT FROM_BASE64(エンコード済みの値) AS エイリアス名;
ケース1:文字列をBase64にエンコードする
実際に「Password」という文字列をエンコードしてみましょう。次のようなクエリを実行します。
mysql> SELECT TO_BASE64('Password') AS Base64EncodeValue;実行結果
+-------------------+ | Base64EncodeValue | +-------------------+ | UGFzc3dvcmQ= | +-------------------+ 1 row in set (0.00 sec)
「Password」が「UGFzc3dvcmQ=」というBase64形式の文字列に変換されました。
ケース2:Base64文字列をデコードする
続いて、先ほど取得した「UGFzc3dvcmQ=」をFROM_BASE64()でデコードして、元の値に戻せるか確認します。
mysql> SELECT FROM_BASE64('UGFzc3dvcmQ=') AS Base64DecodeValue;実行結果
+-------------------+ | Base64DecodeValue | +-------------------+ | Password | +-------------------+ 1 row in set (0.00 sec)
きちんと元の「Password」に戻りました。このように、TO_BASE64()とFROM_BASE64()は対で動作するため、エンコードした値を後から復元することができます。
テーブルを使った実践的な検証方法
より実践的に理解するために、サンプルテーブルを作成して検証してみましょう。まずはテーブルを作成します。
mysql> CREATE TABLE Base64Demo -> ( -> ProductId VARCHAR(100) -> ); Query OK, 0 rows affected (0.54 sec)
次に、INSERT文でレコードを3件登録します。
mysql> INSERT INTO Base64Demo VALUES('321Product');
Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO Base64Demo VALUES('Product456');
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO Base64Demo VALUES('654Product');
Query OK, 1 row affected (0.15 sec)SELECT文で全レコードを表示して、正しく登録されているか確認しましょう。
mysql> SELECT * FROM Base64Demo;
実行結果
+------------+ | ProductId | +------------+ | 321Product | | Product456 | | 654Product | +------------+ 3 rows in set (0.00 sec)
カラムの値を一括でBase64エンコードする
テーブル内の全データに対してTO_BASE64()を適用すると、各レコードをまとめてエンコードできます。
mysql> SELECT TO_BASE64(ProductId) AS Base64Encode FROM Base64Demo;
実行結果
+------------------+ | Base64Encode | +------------------+ | MzIxUHJvZHVjdA== | | UHJvZHVjdDQ1Ng== | | NjU0UHJvZHVjdA== | +------------------+ 3 rows in set (0.00 sec)
デコードして元の値に戻るか検証する
最後に、1番目のエンコード結果「MzIxUHJvZHVjdA==」をデコードし、元の値が取得できるか確認します。
mysql> SELECT FROM_BASE64('MzIxUHJvZHVjdA==') AS DecodeValue;実行結果
+-------------+ | DecodeValue | +-------------+ | 321Product | +-------------+ 1 row in set (0.00 sec)
元の値である「321Product」が正しく返ってきました。このように、MySQLのTO_BASE64()とFROM_BASE64()を使えば、データのBase64変換と復元を簡単に行うことができます。
まとめ
MySQLにおけるBase64変換は、以下のポイントをおさえておけば大丈夫です。
- TO_BASE64():任意の文字列やカラムの値をBase64形式にエンコードできる
- FROM_BASE64():エンコード済みの値を元の文字列にデコードできる
- 両者は対の関係にあるため、エンコード→デコードの往復で元の値を復元可能
IDやトークンなどの一時的な文字列変換が必要な場面で、ぜひ活用してみてください。
-
MySQLで行を削除する方法|DELETE文の基本と実行例を解説
MySQLでテーブルから特定の行(レコード)を削除するには、DELETE文を使用します。この記事では、実際にサンプルテーブルを作成し、DELETE文を使って行を削除する手順を順番に解説します。1. サンプルテーブルの作成まず、CREATE TABLE文を使ってサンプル用のテーブルを作成します。mysql> create table DemoTable -> ( -> CustomerId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> CustomerName varchar(100), -> Cus
-
MySQLクエリの入力方法|基本ルールから複数行クエリまで解説
MySQLクエリの入力方法コンソールでクエリを入力する前に、まずサーバーに正しく接続できているかを確認することが重要です。以下のクエリを実行すると、使用中のサーバーのバージョン番号と現在の日付が表示されます。mysql> SELECT VERSION(), CURRENT_DATE;ポイント:関数「VERSION()」や「CURRENT_DATE」は大文字・小文字を区別しません。つまり、「version()」「Version()」「vERsion()」など、いずれも同じ意味として処理されます。「CURRENT_DATE」についても同様です。MySQLクエリ実行時の基本ルールSQLクエリの