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

MySQLのZEROFILLとは?カラム定義の表示幅まで数値をゼロ埋めする方法

MySQLでは、ZEROFILL属性を使うことで、フィールドの表示値をカラム定義で指定された表示幅までゼロで埋める(ゼロパディング)ことができます。

例えば、カラムをint(8)と定義した場合、表示幅は8になります。ここに「29654」という数値が格納されていると、合計8桁になるように左側がゼロで埋められ、以下のように表示されます。

00029654

テーブルの作成

まず、動作を確認するためのテーブルを作成しましょう。

mysql> create table DemoTable
-> (
-> Number int(8) zerofill
-> );
Query OK, 0 rows affected (0.50 sec)

レコードの挿入

続いて、insertコマンドを使ってテーブルにいくつかのレコードを挿入します。

mysql> insert into DemoTable values(10);
Query OK, 1 row affected (0.16 sec)

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

mysql> insert into DemoTable values(1);
Query OK, 1 row affected (0.47 sec)

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

レコードの表示

select文を実行して、テーブル内のすべてのレコードを表示してみましょう。

mysql> select *from DemoTable;

出力結果

実行すると、次のような出力が得られます。各値が表示幅である8桁に満たない場合、左側が自動的にゼロで埋められているのがわかります。

+----------+
| Number   |
+----------+
| 00000010 |
| 00001234 |
| 00000001 |
| 00678965 |
+----------+
4 rows in set (0.00 sec)

補足:ZEROFILL使用時の注意点

  • ZEROFILLを指定すると、自動的にUNSIGNED属性も適用されるため、負の値を格納できなくなります。
  • 表示幅はあくまで見た目上の幅であり、格納できる数値の範囲には影響しません。
  • なお、MySQL 8.0.17以降ではZEROFILLおよび表示幅の指定は非推奨(deprecated)となっています。新規開発では、LPAD関数などを使ったフォーマット処理への置き換えも検討するとよいでしょう。
  1. MySQLで列の値から先頭の1文字を取り出し、別の列に挿入する方法

    はじめにMySQLである列(カラム)の値から先頭の1文字を取り出し、それを別の列に格納したい場合があります。このようなときに便利なのが LEFT() 関数です。LEFT() 関数は、文字列の左端から指定した文字数だけを抽出することができます。ここでは、実際にテーブルを作成しながら、その手順を順番に解説していきます。1. テーブルを作成するまず、サンプル用のテーブルを作成しましょう。ここでは「FirstLetter」(先頭文字を格納する列)と「Title」(元となる文字列の列)の2つの列を持つテーブルを定義します。mysql> create table DemoTable2036 

  2. MySQLで列の最大値を取得する方法をわかりやすく解説

    MySQLで特定の列の最大値を取得するには、MAX(columnName)関数を使用します。本記事では、その基本的な使い方に加えて、データベースやテーブルの設計に関する前提知識もあわせて解説します。MySQLのデータベースとテーブルの基礎MySQLをインストールする前に、まず使用するバージョンと配布形式(バイナリファイルか、ソースファイルからビルドするか)を決定することが重要です。新しく作成したばかりのデータベースには、当然ながらテーブルはまだ存在しません。データベース設計において最も重要なのは、以下の要素を決めることです。データベース全体の構造必要となるテーブルの一覧各テーブルに含まれる列(