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

MySQLのZEROFILL(ゼロフィル)とは?利点と使い方を実例で解説

MySQLのZEROFILLは、カラム定義で指定した表示幅に満たない数値の先頭を「0」で埋めて表示する属性です。数値自体は変化せず、あくまで表示上の整形に使われる点が特徴です。この記事では、実際のテーブル作成からデータ挿入、表示結果までを通じて、ZEROFILLの役割と利点をわかりやすく解説します。

ZEROFILLを使ったテーブルを作成する

まず、ZEROFILLを設定したカラムと、設定していないカラムの2つを持つテーブルを作成して、表示の違いを比較してみましょう。以下がテーブル作成のクエリです。

mysql> create table ZeroFillDemo
   -> (
   -> First int(18) zerofill,
   -> Second int(18)
   -> );
Query OK, 0 rows affected (0.63 sec)

「First」カラムにはzerofillを指定し、「Second」カラムには指定していません。どちらも表示幅は18桁に設定されています。

レコードを挿入する

次に、INSERT文を使って複数のレコードを登録します。桁数の異なる数値を意図的に挿入することで、ZEROFILLの効果が確認しやすくなります。

mysql> insert into ZeroFillDemo values(1,1);
Query OK, 1 row affected (0.13 sec)

mysql> insert into ZeroFillDemo values(12,12);
Query OK, 1 row affected (0.15 sec)

mysql> insert into ZeroFillDemo values(123,123);
Query OK, 1 row affected (0.10 sec)

mysql> insert into ZeroFillDemo values(123456789,123456789);
Query OK, 1 row affected (0.20 sec)

ZEROFILLの表示結果を確認する

登録したデータをSELECT文で取得し、両カラムの表示の違いを見てみましょう。

mysql> select * from ZeroFillDemo;

実行結果は以下の通りです。

+--------------------+-----------+
| First              | Second    |
+--------------------+-----------+
| 000000000000000001 |         1 |
| 000000000000000012 |        12 |
| 000000000000000123 |       123 |
| 000000000123456789 | 123456789 |
+--------------------+-----------+
4 rows in set (0.00 sec)

出力結果を見ると、「First」カラムでは18桁に満たない数値の先頭が0で埋められていることがわかります。一方、「Second」カラムは通常の数値としてそのまま表示されています。

ZEROFILLの主な利点

  • 桁揃えによる可読性の向上: IDやコードなど、固定桁数で管理したい値を見やすく整列できます。
  • 見た目の一貫性: レポートや一覧表示の際に、数値の桁数がそろい、表として美しく表示されます。
  • 実データへの影響なし: ゼロ埋めは表示時のみの動作であり、格納されている実際の数値は変更されません。

注意点:MySQL 8.0以降での非推奨について

ZEROFILLおよびDISPLAY WIDTH(表示幅)の指定は、MySQL 8.0.17以降で非推奨(deprecated)となっています。今後の開発では、表示形式の整形はアプリケーション側やLPAD()などの文字列関数で行うことが推奨されます。既存システムでZEROFILLを使用している場合は、将来のバージョンアップに備えて設計を見直しておくと安心です。

  1. MySQLクエリにおけるスラッシュ(/)の意味とは?割り算の使い方を実例で解説

    MySQLクエリでスラッシュ(/)は何を意味するのかMySQLのクエリにおいて、スラッシュ(/)は除算(割り算)を表す演算子です。2つの数値を割り算する際に使用できます。ここでは、2つのカラムの値を割り算し、その結果を新しいカラムとして表示する具体例を見ていきましょう。サンプルテーブルを作成するまず、以下のようにテーブルを作成します。mysql> create table DemoTable719 ( FirstNumber int, SecondNumber int);Query OK, 0 rows affected (0.57 sec)レコードを挿入するINSERTコマ

  2. MySQLでデータベース内のテーブル数を表示するクエリの書き方

    INFORMATION_SCHEMA.TABLESを使ってテーブル数を取得するここでは例として、「WEB」というデータベースを使用しているものとします。このデータベース内に存在するテーブルの総数を調べたい場合、MySQLではINFORMATION_SCHEMA.TABLESを利用するのが便利です。INFORMATION_SCHEMAは、MySQLサーバーが管理しているメタデータ(データベース名、テーブル名、カラム情報など)を格納する仮想データベースであり、これを参照することでスキーマに関する情報をSQLで簡単に取得できます。テーブル数を表示するクエリ「WEB」データベース内のテーブル数を表示す