MySQLにおけるBIGINTとBIGINT(20)の違いとは?表示幅の意味を実例で解説
BIGINTとBIGINT(20)の違い
MySQLにおける「BIGINT」と「BIGINT(20)」の違いは、表示幅(display width)だけです。括弧内の数値「20」は、値を表示する際の桁数を指定するためのものであり、格納できる数値の範囲には一切影響しません。つまり、両者とも同じ範囲の整数(-9223372036854775808 ~ 9223372036854775807)を扱うことができます。
なお、MySQL 8.0.17以降では整数型の表示幅指定は非推奨(deprecated)となっているため、新規開発での利用は避けるのが望ましいでしょう。
動作を確認するサンプルテーブルの作成
それでは、実際の例を見ていきましょう。ここでは、ZEROFILLオプションを付けたBIGINT(20)カラムを持つテーブルを作成します。
mysql> create table DemoTable
(
Number bigint(20) zerofill
);
Query OK, 0 rows affected (0.58 sec)レコードの挿入
INSERTコマンドを使って、いくつかのレコードをテーブルに挿入します。
mysql> insert into DemoTable values(1); Query OK, 1 row affected (0.08 sec) mysql> insert into DemoTable values(12); Query OK, 1 row affected (0.15 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.11 sec)
レコードの表示
SELECT文でテーブル内のすべてのレコードを表示してみましょう。
mysql> select *from DemoTable;
実行結果は以下の通りです。表示幅が20に設定されているため、各数値は左側がゼロで埋められ、20桁で表示されます。
+----------------------+ | Number | +----------------------+ | 00000000000000000001 | | 00000000000000000012 | | 00000000000000000123 | | 00000000000000001234 | +----------------------+ 4 rows in set (0.00 sec)
まとめ
BIGINT(20)の「20」はあくまで表示上の幅を示す指定であり、保存できる値の範囲は通常のBIGINTとまったく同じです。ZEROFILLと組み合わせることで、指定した桁数に満たない数値の左側が0で埋められて表示されます。ただし、この表示幅指定はMySQL 8.0.17以降で非推奨となっているため、今後の開発では使用しないことをおすすめします。
-
C#とVisual C#の違いとは?両者の関係をわかりやすく解説
C#とVisual C#に違いはあるのか?結論から言うと、C#とVisual C#は本質的に同じものです。Microsoftの統合開発環境「Visual Studio」を使用してC#による開発を行う場合、その環境や実装を指して「Visual C#」と呼びます。つまり、Visual C#はC#言語のVisual Studio向け実装だと考えると理解しやすいでしょう。Visual StudioとはMicrosoft Visual Studioは、デスクトップアプリケーション、Webアプリケーション、Webサービスなど、さまざまなプログラムを開発するためにMicrosoftが提供する統合開発環境(I
-
C#と.NETの違いをわかりやすく解説!言語とフレームワークの関係
C#と.NETの基本的な違いC#(シーシャープ)はマイクロソフトが開発したプログラミング言語であり、一方の.NET(ドットネット)はアプリケーション開発を支援するフレームワークです。この2つは密接な関係にありますが、それぞれの役割はまったく異なります。.NETの中核となる「共通言語ランタイム(CLR)」.NETには「共通言語ランタイム(CLR:Common Language Runtime)」と呼ばれる仮想的な実行環境が組み込まれています。CLRはメモリ管理、例外処理、セキュリティなどを担当し、.NET上で動作するすべてのアプリケーションの土台となる重要なコンポーネントです。C#だけじゃない!