MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

【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以降で非推奨となっているため、新規開発ではアプリケーション側でフォーマットする方法も検討するとよいでしょう。
  1. MySQLクエリでテーブル列の日付形式を変更する方法

    MySQLクエリでテーブル列の日付形式を変更する方法 MySQLでテーブルに保存された日付の表示形式を変更するには、DATE_FORMAT()関数を使用します。この記事では、サンプルテーブルを作成し、実際に日付形式を変換するまでの手順をサンプルコード付きでわかりやすく解説します。 1. サンプルテーブルの作成 まず、datetime型の列を持つテーブルを作成しましょう。 mysql> create table DemoTable1906 ( DueTime datetime ); Query OK, 0 rows affected (0.00 sec) 2.

  2. MySQLで1つのINSERT文を使って列に複数の値を一括挿入する方法

    はじめにMySQLでは、1つのINSERT文を繰り返し実行しなくても、単一のクエリだけで同じ列に複数の値を挿入できます。VALUES句の後ろに、挿入したい値をカンマ区切りのタプル(行)として列挙するだけです。この方法はデータベースへの接続回数を減らせるため、大量のデータを登録する際にパフォーマンス面でも大きなメリットがあります。基本構文複数の値を1つの列に挿入する場合の基本構文は以下のとおりです。INSERT INTO テーブル名 VALUES(値1),(値2),...,(値N);このように、各値を丸括弧で囲み、カンマ(,)で区切って並べることで、1回のクエリで複数行をまとめて挿入できます。実