ホームページ  >  記事  >  データベース  >  mysqlのint(5)の長さはどれくらいですか

mysqlのint(5)の長さはどれくらいですか

王林
王林転載
2023-06-03 23:24:141876ブラウズ

int(5) の長さはどれくらいですか?

mysql テーブルのフィールドを設計する場合、int(5) はフィールドの長さが 5 であることを意味しますか?

そう思った方は、ぜひ読み進めていただければ、新たな発見があると思います。

最初に実際の例を見てみましょう

主キー ID と長さフィールドが 1 つだけある新しいテーブルを作成します。長さフィールドは int(5) に設定されます。

#新建test表
CREATE TABLE `test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `length` int(5) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

長さフィールドには長さ 5 までの数値しか格納できないというのは本当ですか? データの一部を挿入してみましょう。

さらに大きなデータ 123456789 を挿入します。このデータは合計 9 桁あり、正常に挿入できるかどうかを確認します。

#插入一条大数据
insert into test (length) values (123456789);

int(5) は 5 を超える長さのデータを挿入できることが判明したため、int(5) がデータの幅を表していないことがわかりました。

#查看插入数据
mysql> select * from test;
+------------+-----------+
| id         | length    |
+------------+-----------+
|  1         | 123456789 |
+------------+-----------+

mysql では、int フィールドの長さは実際には 4 バイトに固定されています。int(11) を使用するか int(5) を使用するかに関係なく、フィールドの長さは 4 バイトに固定されます。 。

int(5) は、実際には別の属性 zerofill と組み合わせて使用​​されます。つまり、フィールド値の幅が 5 未満の場合、先頭に 0 が自動的に追加されます。 5 以上の場合、0 を追加する必要はありません。

#int(5) length 字段添加了 zerofill 属性
mysql> select * from test;
+----+--------+
| id | length |
+----+--------+
|  1 |  00888 |
|  2 |  00012 |
|  3 |  12345 |
|  4 | 123456 |
+----+--------+

前提としてフィールドに zerofill 属性を追加することが必要であることに注意してください。そうでない場合、int(5) は機能しません。

#int(5) length 字段没有 zerofill 属性
mysql> select * from test;
+----+--------+
| id | length |
+----+--------+
|  1 |    888 |
|  2 |     12 |
|  3 |  12345 |
|  4 | 123456 |
+----+--------+

整数フィールドの長さを設定したい場合は、tinyint、smallint、mediumint、int、bigint 型を選択する必要があります。これらの整数型は固定長を表します。具体的な長さについては、以下を参照してください。シート。

mysqlのint(5)の長さはどれくらいですか

符号付き整数を保存する場合、zerofill 属性はサポートされていないため、自動的に 0 に変換されることに注意してください。デクリメントを伴う一部のビジネスでは、これを考慮する必要があります。 。

以上がmysqlのint(5)の長さはどれくらいですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。