MySQLのBIGINTとINTにおけるZEROFILL(ゼロフィル)の違いを徹底解説
MySQLにおけるBIGINTとINTの最大の違いは、データ長にあります。INTは32ビット、BIGINTは64ビットで構成されています。それぞれの特徴を詳しく見ていきましょう。
BIGINTとINTの主な違い
ストレージサイズ: BIGINTは8バイト、INTは4バイトの格納領域を使用します。
最大値: INT(10)の場合、符号なし整数の最大値は4,294,967,295です。一方、BIGINT(20)では18,446,744,073,709,551,615という非常に大きな値まで扱えます。
表示幅: BIGINT(20)やINT(10)のように括弧内の数値は、ZEROFILL(ゼロフィル)を使用した際の表示幅として機能します。
ZEROFILLを使った実演デモ
ZEROFILLは、指定された表示幅に満たない桁数を先頭に0で埋める属性です。ここでは、BIGINTとINTにZEROFILLを適用した実際の動作を確認してみましょう。
1. テーブルの作成
まず、以下のクエリでテーブルを作成します。
mysql> create table BigintandintDemo -> ( -> Number1 bigint zerofill, -> Number2 int zerofill -> ); Query OK, 0 rows affected (0.62 sec)
2. レコードの挿入
次に、テーブルへレコードを挿入します。
mysql> insert into BigintandintDemo values(234556667777,678999); Query OK, 1 row affected (0.17 sec)
3. レコードの表示
SELECT文を使って、テーブル内のすべてのレコードを表示します。
mysql> select *from BigintandintDemo;
実行結果は以下の通りです。
+----------------------+------------+ | Number1 | Number2 | +----------------------+------------+ | 00000000234556667777 | 0000678999 | +----------------------+------------+ 1 row in set (0.00 sec)
結果のポイント
出力結果を見ると、Number1(BIGINT)は20桁になるよう先頭が0で埋められ、「00000000234556667777」と表示されています。同様に、Number2(INT)も10桁になるよう「0000678999」と表示されました。
このように、ZEROFILLを指定すると、カラム定義時の表示幅(BIGINTなら20桁、INTなら10桁)に合わせて、足りない桁が自動的に0で補完されます。IDやコードなど、固定桁数での表示が必要な場面で便利な機能ですが、MySQL 8.0以降では表示幅の指定自体が非推奨となっている点にも注意が必要です。
-
MySQLでINT型フィールドを更新する方法
```html MySQLでは、UPDATE文を使ってテーブル内のINT型フィールド(数値データ)を簡単に更新できます。この記事では、サンプルテーブルを作成し、既存の数値を基準にINT型カラムを更新する具体的な手順を実行例とともに解説します。 1. サンプルテーブルの作成 まず、以下のクエリでテーブルを作成します。 mysql> create table DemoTable702 ( StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentName varchar(100), StudentScore
-
MySQLにおけるBIGINTとBIGINT(20)の違いとは?表示幅の意味を実例で解説
BIGINTとBIGINT(20)の違いMySQLにおける「BIGINT」と「BIGINT(20)」の違いは、表示幅(display width)だけです。括弧内の数値「20」は、値を表示する際の桁数を指定するためのものであり、格納できる数値の範囲には一切影響しません。つまり、両者とも同じ範囲の整数(-9223372036854775808 ~ 9223372036854775807)を扱うことができます。なお、MySQL 8.0.17以降では整数型の表示幅指定は非推奨(deprecated)となっているため、新規開発での利用は避けるのが望ましいでしょう。動作を確認するサンプルテーブルの作成そ