MySQLのint(11)の最大長はどれくらいですか?



What Is Maximum Length Int Mysql

今日データを追加したとき、データ型がint(11)の場合、ユーザーにデータを追加するように依頼したところ、最大入力長は11桁でした。その結果、追加したデータを追加できず、問題が発生しました。最大長は10桁に変更しました。その結果、9 1が検証されると正常になり、99が再度検証されると再び失敗します。

情報を照会した後、私はついにmysqlのデータ型int(11)の紹介を見つけました



SQLステートメントで、intは作成するフィールドのタイプを表し、intは整数を表し、11はフィールドの長さを表します。

この11は表示幅を表します。整数列の表示幅とmysqlが列の値を表示するために必要な文字数は、整数に必要なストレージスペースのサイズとは関係ありません。たとえば、表示幅に設定されている文字数に関係なく、Bigintは8バイトを使用します。



Intは整数、(11)は表示される文字の長さを示しますが、パラメーターが追加されます。最大値は255です。たとえば、レコード行番号のIDであり、10個のデータを挿入すると、次のように表示されます。 00000000001 ~~~ 00000000010、文字の場合桁数が11を超えると、11桁しか表示されません。 11桁未満になるパラメータを追加しない場合は、前面に0を追加すると、前面に0が追加されません。

整数データ列を宣言する場合、INT(5)などの表示幅M(1〜255)を指定できます。表示幅を指定しない場合は、MySQLで表示幅を5文字に指定できます。デフォルトで1つ指定します。表示幅は表示にのみ使用され、値の範囲と占有されるスペースを制限するものではありません。たとえば、INT(3)は4バイトのストレージスペースを占有し、最大許容値は999ではなく、INT整数許容される最大値になります。

MySQLには、TINYINT、SMALLINT、MEDIUMINT、INT、およびBIGINTの5つの整数データ列タイプがあります。それらの違いは、値の範囲が異なり、ストレージスペースも異なることです。
整数データ列の後にUNSIGNED属性を追加して、負の数を禁止します。値は0から始まります。

注:ここでのMは、データベースに格納されている特定の長さを表すものではありません。これまで、int(3)は3つの長さの数値しか格納できず、int(11)は11の長さの数値を格納するということは常に誤解されていました。これは非常に間違っています。

実際、int(3)またはint(11)のいずれのタイプのintを使用するかを選択すると、データベースに4バイトの長さが格納されます。 int(3)を使用する場合、「10の場合」と入力すると、デフォルトで010が格納されます。つまり、この3はデフォルトの長さを表します。あなたが3桁未満の場合、それはあなたを不完全に助けます。 3桁を超えると効果がありません。

int(10)とint(11)の違いは何ですか?当時は長さの違いだと思いました。今見てみると、ストレージの違いを除けば、使っても違いはありません。

int(10)は2147483647の値を表すこともでき、int(11)も表すことができます。

画像