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

推薦する

forEachでawaitが機能しない問題を解決する

1. はじめに数日前、プロジェクトでトラバーサルに使用したときに落とし穴に遭遇し、解決するのに 1 ...

MySQL ステートメントの概要

目次1. データベースの使用を選択2. 情報を表示する3. テーブルを作成する4. データを挿入する...

nginx のインストールが完了した後に PHP を解析できない問題の解決方法

目次方法1方法2 nginxをインストールした後、PHPコードを解析できないことがわかりました。解決...

現在のMySQL接続数を表示する方法の詳細な説明

1. 現在のすべての接続の詳細情報を表示します。 ./mysqladmin -uadmin -p -...

WeChatアプレットの入力レベルとテキストエリアレベルの浸透率が高すぎる問題の解決策

WeChat ミニプログラムのネイティブ コンポーネントであるカメラ、キャンバス、入力 (フォーカス...

Web コンテンツ ページを作成するための 9 つの実用的なヒント

コンテンツ1. 読者に留まる理由を与える。ウェブページを面白く魅力的なものにしましょう。しかし、まず...

Linuxで同一ファイルを見つける方法

コンピュータを使用すると、システム内に大量のゴミが生成されます。最も一般的なケースは、同じファイルが...

ネイティブJSで様々なモーションの複合モーションを実現

この記事では、ネイティブ JS で実装された複合モーションを紹介します。複合モーションとは、異なる属...

Dockerイメージの階層化の原理の詳細な説明

ベースイメージベースイメージには 2 つの意味があります。他のイメージに依存せず、ゼロから構築します...

Vueはアップロードコンポーネントを実装します

目次1. はじめに2. アイデアファイルをアップロードする2つの方法3. ライフサイクル4. コード...

初心者がHTMLタグを学ぶ(1)

初心者は、いくつかの HTML タグを理解することで HTML を学習できます。この入門書は、初心者...

MySQLの認証コマンドgrantの使い方

この記事の例は MySQL 5.0 以降で実行されます。ユーザー権限を付与するための MySQL コ...

Windows 10 で Hyper-V サービスをシャットダウンするいくつかの方法

VMware Workstation を使用して Windows 10 で仮想マシンを開くと、VMw...

Dockerはmacvlanをベースにホスト間コンテナ通信を実装する

2 台のテスト マシンを見つけます。 [root@docker1 centos_zabbix]# d...