int(1) の長さ 1 は、許可されたストレージ幅を表していないことはすでにご存知かもしれません。 しかし、この長さが何を意味するのかを実際に研究した人は多くありません。今日は簡単に分析してみたいと思います。 テーブル作成の簡単な例を見てみましょう。 テーブルテストを作成( id int(11) 符号なし NOT NULL AUTO_INCREMENT, uid int(3) NULLではない、 主キー (id) )ENGINE=InnoDB デフォルト文字セット=utf8mb4; ここではuidフィールドを例として取り上げ、int(3)に設定します。 質問は、int(3) を設定すると、データ 1234 を保存できないかどうかです。 次に、次のSQL文を入力してテストします。 `test` (`uid`) に VALUES(1234) を挿入します。 `test` (`uid`) に VALUES(12345678) を挿入します。 結果のグラフは次のようになります。 友人は、上記のSQL文を通じてデータ1234が正常に挿入されたことを確認できます。さらに、より多くの桁のデータを挿入することもできます。これはなぜでしょうか?以下を参照してください。 理由は次のとおりです。 この int(n) は次のように簡単に理解できます。 この長さは、このフィールドに格納されているデータの幅が n 桁であることを MySQL に伝えるためのものです。もちろん、n 桁を格納しない場合でも、(この型の格納範囲内であれば) MySQL は普通に格納することもできます。 次に、test2テーブルを再度作成し、今度はuidフィールドに次の制約を追加します: unsignedおよびzerofill ==フィールド制約については後で詳しく説明します== MySQL コードは次のとおりです。 テーブルtest2を作成します( id int(11) 符号なし NOT NULL AUTO_INCREMENT, uid int(3) 符号なしゼロフィル NOT NULL、 主キー (id) )ENGINE=InnoDB デフォルト文字セット=utf8mb4; これで、私の uid フィールド: 長さ (n) = 3、フィールド制約 = 符号なし、ゼロフィル: (符号なし制約、数字制約を埋めるために 0 を使用) この制約フィールドを設定すると、テーブルにデータを挿入するときに、uid フィールドが 3 桁未満の場合、システムは自動的に左側に 0 を入力します。 uid フィールドに数字 33 を挿入してコードをテストできます。 `test2` (`uid`) VALUES(33) に挿入します。 結果のグラフは次のようになります。 長さが3未満の場合は、左から0で埋められることに驚きましたか?ハハハハ つまり、int の後の長さ n は、格納する数値のサイズとは何の関係もないことが明確にわかるはずです。 ==要約:== テーブル フィールドのデータ型を int として定義する場合、その後ろの長さ n は意味がありません。この型の保存範囲内であれば、MySQL は正常に保存できます。左側に 0 を埋め込む必要がある場合は、このフィールドにゼロ埋め制約と unsigned 制約が必要です。 MySQL の int(n) の後の n の意味についてのこの記事はこれで終わりです。MySQL int(n) に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: JavaScript はパスワードボックスの入力検証を実装します
>>: docker-compose が遅すぎる場合の解決策の詳細な説明
目次序文システム環境現在のシステムパーティションレイアウトデータのバックアップレスキューモードに入る...
データベースのパフォーマンスに関する話面接では、「データベースにどのくらい精通していますか?」など、...
実際、IE6 が本当にいつ消滅するのか私たちは毎日疑問に思っていますが、2001 年のリリース以来、...
この記事では、divのドラッグ可能な高さを実現するためのVueの具体的なコードを参考までに共有します...
1. CSSは左の固定幅と右の適応幅を実現します1. ポジショニング <!DOCTYPE ht...
開発中に画像とテキストが 1 行に表示されることはよくあります。2 つのインライン要素を揃えるのは通...
この記事の例では、画像デジタル時計を実現するためのJSの具体的なコードを参考までに共有しています。具...
目次必要:発生した問題:解決する:必要:要素テーブル内の複数の列を並べ替えるには、日付の並べ替えをク...
1. 需要ベースには 300 台の新しいサーバーがあり、CentOS7.6 オペレーティング システ...
テキストシャドウテキストに影を追加します。テキストとテキスト装飾に複数のシャドウを追加することができ...
この記事では、最も単純なものから最も複雑なものまで、Nginx の現在の制限構成を例を使って説明しま...
JavaScript ネイティブ コードの記述能力を高め、setTimeout() の使用を強化する...
MySQL 8.0.19 では、間違ったパスワードを 3 回入力するとアカウントがロックされるよう...
背景Alibaba Cloud RDS for MySQL(MySQL バージョン 5.7)データベ...
MySQL のデータ ディクショナリは、データベースの重要なコンポーネントの 1 つです。INFOR...