【MySQL】ZEROFILLを使って列の数値をゼロ埋め(ゼロパディング)する方法
MySQLでは、整数型の列にZEROFILL属性を指定することで、設定した桁数に満たない数値の左側を自動的にゼロで埋める(ゼロパディング)ことができます。例えば int(10) zerofill と定義した場合、値「1」は「0000000001」と表示されます。
ここからは、実際の手順を順番に見ていきましょう。
1. テーブルを作成する
まず、サンプル用のテーブルを作成します。
mysql> create table DemoTable
(
Number int
);
Query OK, 0 rows affected (0.58 sec)2. ZEROFILL属性を追加する
次に、ALTER TABLE文を使ってNumber列にzerofill属性を追加します。ここでは表示幅を10桁に設定しています。
mysql> alter table DemoTable change Number Number int(10) zerofill not null; Query OK, 0 rows affected (1.13 sec) Records: 0 Duplicates: 0 Warnings: 0
3. レコードを挿入する
INSERTコマンドでテストデータをいくつか挿入します。
mysql> insert into DemoTable values(1); Query OK, 1 row affected (0.23 sec) mysql> insert into DemoTable values(12); Query OK, 1 row affected (0.53 sec) mysql> insert into DemoTable values(123); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable values(1234); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable values(12345); Query OK, 1 row affected (0.15 sec)
4. 結果を確認する
SELECT文ですべてのレコードを表示してみましょう。
mysql> select *from DemoTable;
実行結果は以下の通りです。各数値が10桁になるよう、左側がゼロで埋められているのがわかります。
+------------+ | Number | +------------+ | 0000000001 | | 0000000012 | | 0000000123 | | 0000001234 | | 0000012345 | +------------+ 5 rows in set (0.00 sec)
ZEROFILL使用時の注意点
- ZEROFILLを指定した列は、暗黙的にUNSIGNED(符号なし)属性になるため、負の値を格納できません。
- ZEROFILLによるゼロ埋めはあくまで表示上の整形であり、実際に格納される数値そのものが変換されるわけではありません。
- なお、表示幅の指定(例:
int(10))はMySQL 8.0.17以降で非推奨となっているため、新規開発ではアプリケーション側でフォーマットする方法も検討するとよいでしょう。
-
MySQLクエリでテーブル列の日付形式を変更する方法
MySQLクエリでテーブル列の日付形式を変更する方法 MySQLでテーブルに保存された日付の表示形式を変更するには、DATE_FORMAT()関数を使用します。この記事では、サンプルテーブルを作成し、実際に日付形式を変換するまでの手順をサンプルコード付きでわかりやすく解説します。 1. サンプルテーブルの作成 まず、datetime型の列を持つテーブルを作成しましょう。 mysql> create table DemoTable1906 ( DueTime datetime ); Query OK, 0 rows affected (0.00 sec) 2.
-
MySQLで1つのINSERT文を使って列に複数の値を一括挿入する方法
はじめにMySQLでは、1つのINSERT文を繰り返し実行しなくても、単一のクエリだけで同じ列に複数の値を挿入できます。VALUES句の後ろに、挿入したい値をカンマ区切りのタプル(行)として列挙するだけです。この方法はデータベースへの接続回数を減らせるため、大量のデータを登録する際にパフォーマンス面でも大きなメリットがあります。基本構文複数の値を1つの列に挿入する場合の基本構文は以下のとおりです。INSERT INTO テーブル名 VALUES(値1),(値2),...,(値N);このように、各値を丸括弧で囲み、カンマ(,)で区切って並べることで、1回のクエリで複数行をまとめて挿入できます。実