int(3)とint(10)の値の範囲はmysqlで同じですか?

int(3)とint(10)の値の範囲はmysqlで同じですか?

質問:

MySQLフィールド、unsigned int(3)、およびunsigned int(6)の値の範囲は同じですか?異なる場合、大きさはどれくらいですか?

答え:

違いは、int(3)は最大3桁の符号なし整数を表示でき、int(6)は最大6桁の符号なし整数を表示できることです。

あなたの答えが上記と同じであれば、おめでとうございます。あなたは私と同じ間違いを犯したことになります。

現実:

int 型の整数は 4 バイトを占めます。符号付き整数の範囲は -2^31 ~ 2^31-1、符号なし整数の範囲は 0 ~ 2^32-1 です。すべて符号なし整数なので、格納範囲は同じです。int(6) は、6 桁未満の数値には 0 を代入します。6 桁を超える数値には代入の必要はありません。

次の表を作成します。

存在する場合はテーブルを削除するテスト。
テーブル「test」を作成します(
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `a` int(11) NULLではない、
  `b` int(11) 符号なしゼロフィル NOT NULL,
  `c` int(5) デフォルト NULL,
  `d` int(5) 符号なしゼロフィル NOT NULL,
  `e` int(15) デフォルト NULL,
  主キー (`id`)
)ENGINE=InnoDB デフォルト文字セット=utf8mb4;

データを挿入した後、cmd コマンドラインを使用して次を表示します。

mysql> テストから * を選択します。
+----+-------------+--------------+-------------+-------------+-------------+
| id | a | b | c | d | e |
+----+-------------+--------------+-------------+-------------+-------------+
| 1 | 1 | 00000000001 | 1 | 00001 | 1 |
| 2 | 1234567890 | 01234567890 | 1234567890 | 1234567890 | 1234567890 |
+----+-------------+--------------+-------------+-------------+-------------+

int(3)とint(6)はどちらも6桁以上の整数を表示できることがわかります。ただし、数字が 3 桁または 6 桁未満の場合は、先頭に 0 が付加されます。

注意: navicat などのツールを使用して表示すると、0 は追加されません。処理されている可能性があります。この効果を確認するには、mysql cmd コマンドラインを使用する必要があります。

マニュアルを確認してください。説明は次のとおりです。

MySQL では、型キーワードの後に​​括弧で整数値の表示幅を指定するオプションもサポートされています (例: INT(4))。このオプションの表示幅は、指定された列幅よりも表示幅が小さい場合に、表示幅を左から埋めることを指定します。表示幅は、列に保持できる値の範囲を制限するものではなく、指定された列の幅を超える値の表示を制限するものでもありません。

つまり、int の長さはデータの格納精度には影響しません。長さは表示にのみ関係します。わかりやすくするために、上記の例ではテーブル作成ステートメントで zerofill を使用しました。

知識ポイント

int(M)のMは最大表示幅を表します。有効な最大表示幅は255で、表示幅はストレージサイズや型に含まれる値の範囲とは関係ありません。

まず、MySQL の数値型について説明します。MySQL は、すべての標準 SQL 数値データ型をサポートしています。これらの型には、厳密な数値データ型 (INTEGER、SMALLINT、DECIMAL、NUMERIC) と近似数値データ型 (FLOAT、REAL、DOUBLE PRECISION) が含まれます。キーワード INT は INTEGER の同義語であり、キーワード DEC は DECIMAL の同義語です。

BIT データ型はビット フィールド値を格納し、MyISAM、MEMORY、InnoDB、および BDB テーブルでサポートされています。 SQL 標準の拡張として、MySQL は整数型 TINYINT、MEDIUMINT、および BIGINT もサポートします。次の表は、各整数型に必要なストレージと範囲を示しています。

結論は:

unsigned int(3)でもunsigned int(6)でも、0~2^32の4バイトの符号なし整数を格納します。

要約する

MySQLのint(3)とint(10)の値の範囲は同じかどうかについてのこの記事はこれで終わりです。mysqlのint(3)とint(10)の値の範囲についてさらに詳しく知りたい方は、123WORDPRESS.COMの過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも123WORDPRESS.COMをよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQLにおけるint(10)とint(11)の違い
  • MySQL の int(n) の後の n はどういう意味ですか?
  • MySQL int(3)とint(11)の違いの詳細な説明
  • MySQLのint(1)とint(10)の違いについて簡単に説明します。

<<:  Docker管理に関する断片的な知識のまとめ

>>:  CSS マージンの重複と解決策の探索の詳細な説明

推薦する

MySQL で 2 つのデータベース テーブル構造を比較する方法

開発およびデバッグのプロセスでは、新しいコードと古いコードの違いを比較する必要があります。比較には、...

CSS コンテナ背景 10 色グラデーション デモ (linear-gradient())

文法 背景: linear-gradient(direction,color-stop1,color...

Rx レスポンシブプログラミングについての簡単な説明

目次1. 観察可能2. 高階関数3. エクスプレスボックスモデル3.1. エクスプレスボックスモデル...

TypeScript インターフェース定義ケースチュートリアル

インターフェースの役割:インターフェース (英語: interface) の機能は、簡単に言えば、コ...

ウェブページの内部アンカーポイントを実現するための純粋なCSSの上下オフセットコード例

最近、「フットボール ナビゲーション」Web サイトに取り組んでいるときに、上部の固定ナビゲーション...

HTMLヘッダータグの使用に関する詳細な説明

HTMLはヘッドとボディの2つの部分で構成されています** ヘッド内のタグはヘッドタグです** タイ...

Vueの最初のレンダリングのプロセス全体についての簡単な説明

目次1. Vueの初期化vue エントリ ファイルフルバージョンとランタイムバージョンの違い1.1、...

非常に優れた CSS スキル 10 選のコレクションと共有

ここでは、CSS テクニックを巧みに使用することで、HTML を変更せずにブログやテンプレートの外観...

HTML チュートリアル、HTML デフォルト スタイル

html 、アドレス、引用、本文、 dd 、 div 、 dl 、 dt 、フィールドセット、フォ...

Mysql 文字列の傍受と指定された文字列内のデータの取得

序文: 正規表現のインターセプションに似た、MySql フィールドの文字列から特定の文字を抽出すると...

UbuntuのVimにNERDTreeプラグインをインストールする詳細な手順

NERDTree は Vim 用のファイル システム ブラウザーです。このプラグインを使用すると、ユ...

JavaScript を使用してソートアルゴリズムを実装する方法

目次バブルソート選択ソート挿入ソート要約するバブルソートバブルソートは、シーケンスの右側から始めて、...

Javascript配列の重複排除のいくつかの方法の詳細な説明

目次アレイ重複排除1 2層forループ(バブルソートの2層ループ記述に類似) 2 ループとインデック...

Vue 監視属性のグラフィック例の詳細な説明

目次リスナープロパティとは何ですか?リスニングプロパティと計算プロパティの違いは何ですか?監視プロパ...

この記事では、Vueのフロントエンドページングとバックエンドページングを実装する方法を説明します。

目次1: フロントエンドの手書きページング(データ量が少ない場合) 2: バックエンドのページング、...