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

推薦する

Nginx Rewriteモジュールを使用するいくつかのシナリオ

アプリケーションシナリオ1: ドメイン名ベースのリダイレクト会社の古いドメイン名は www.accp...

Windows/Mac で Docker を使用して MySQL (utf8 を含む) をインストールする

目次1. MacへのDockerのインストール2. Win 10 システムでの Docker のイン...

MySQLの3値ロジックとNULLの詳細な説明

目次NULLとは何か2種類のNULLなぜ「= NULL」ではなく「IS NULL」と書く必要があるの...

MySQL の重複データの処理方法 (防止と削除)

一部の MySQL テーブルには重複レコードが含まれている場合があります。重複データが存在することを...

MySQL InnoDB テーブルスペース暗号化の例の詳細な説明

序文MySQL 5.7.11 以降、MySQL は、別の表領域に格納された InnoDB テーブルの...

シンプルなHTMLとCSSの使い方の詳細な説明

HTML と CSS を含む JD.com のホームページの静的ページ効果を 3 日間で完成させます...

HTMLタグを閉じるのを忘れないでください

Web 標準に準拠した Web ページの構築は、jb51.net が常に全員と議論しているトピックで...

MySQL パフォーマンス ストレス ベンチマーク ツール sysbench の使い方の紹介

目次1. sysbenchの紹介#プロジェクトダウンロードアドレス: 2. Sysbenchのインス...

SQL Server コメントのショートカット キー操作

SQL Server のバッチコメントバッチ注釈Ctrl + (K, C): Ctrlキーを押しなが...

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

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

Vue ボタンの権限制御の導入

目次1. 手順1. ボタンの権限を定義する2. ストアを定義する3. 権限指示を作成する4. パーミ...

DPlayer.js ビデオ再生プラグインの使い方

DPlayer.jsビデオプレーヤープラグインは使いやすい主な用途: ビデオの再生、監視の開始、終了...

MySQL 5.6 マスタースレーブエラー報告の実践記録

1. 問題の症状バージョン: MySQL 5.6、従来の binlog ファイルと pos 方式を使...

Linux sedコマンドの使用

1. 機能紹介sed (Stream EDitor) は、コンテンツを 1 行ずつ処理するストリーム...

Vue データ内のプロパティをランダムに変更すると、ビューは更新されますか?

インタビュアー: Vue のソースコードを読んだことはありますか?応募者:あります。インタビュアー:...