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 マージンの重複と解決策の探索の詳細な説明

推薦する

CSSでイメージマッピングを実装する方法

1. はじめにイメージマップを使用すると、画像の領域をホットスポットとして指定できます。この領域にマ...

XHTML 3つの文書型宣言

XHTML は 3 つのドキュメント タイプ宣言を定義します。最もよく使用されるのは XHTML T...

HTML 9グリッドレイアウトの実装方法

ウェブサイトのレイアウトの多様化は、当社のフロントエンドの得意分野です。最近、UC ブラウザのデフォ...

Vueのウォッチリスナーの使い方を説明する記事

目次リスナーウォッチ形式リスナーを設定します。要約するリスナーウォッチ関数名は、リッスンする要素の名...

Navicat for MySql ビジュアルインポート CSV ファイル

この記事では、参考までに、Navicat for MySql の CSV ファイルのビジュアルインポ...

興味深いカウントダウン効果を実現するjs

js興味深いカウントダウンケース、参考までに、具体的な内容は次のとおりですコード: <!DO...

JavaScript フォーム検証の例

HTML フォームは、名前、電子メール アドレス、場所、年齢などのユーザー情報を収集するためによく使...

jQueryは、マウスをドラッグしてdivの位置とサイズを変更する方法を実装しています。

Windows フォームと同様の効果を得るには、中央をドラッグして div の位置を変更し、端をド...

React、Angular、Vueの3つの主要なフロントエンド技術の詳細説明

目次1. 反応する基本的な使い方注目すべき機能クラスコンポーネント仮想DOMライフサイクルメソッドJ...

MySQL ページングの制限パラメータの簡単な例

Mysqlページングの2つのパラメータ ユーザー制限 1,2 から * を選択 1 は検索する最初の...

MySQL マスタースレーブ同期における server-id の例の詳細な説明

序文MySQL クラスターを構築する場合、当然のことながら、データの一貫性を確保するために、データベ...

Centos は chrony 時間同期サーバー プロセス図を構築します

私の環境: 3 centos7.5 1804マスター 192.168.100.140ノード1 192...

ラジオボタンと複数選択ボタンは画像を使用してスタイル設定されます

ラジオ ボタンや複数選択ボタンにスタイルを追加する方法や、ボタンを大きくする方法を尋ねる人を以前見か...

Ubuntu で XFS ファイルシステム用の LVM を作成する方法

序文lvm (論理ボリューム マネージャー) 論理ボリューム管理は、Linux システムのニーズを満...

JS ES の新機能: 拡張演算子の紹介

1. スプレッド演算子スプレッド演算子は 3 つのドット ... で、複数の引数 (関数呼び出しなど...