ホームページ  >  記事  >  データベース  >  Mysql tinyint(1) と tinyint(4) の違いは何ですか

Mysql tinyint(1) と tinyint(4) の違いは何ですか

WBOY
WBOY転載
2023-06-01 08:31:32998ブラウズ

tinyint(M) とは何ですか?

まず、文字列型 varchar(M) と数値型 tinyint(M) の違いを理解しましょう。 mysql ?
String 列型 : varchar(M) たとえば、M は、フィールド、つまりフィールドの長さです。設定によっては、フィールド長を超えるデータを挿入するとエラーが発生する可能性があります。また、エラーが発生しない場合でも、挿入したデータは、フィールドの事前定義された長さに合わせて自動的に切り詰められます。したがって、varchar(20) と varchar(40) は異なり、 はフィールド に格納できるデータの長さを正確に反映します。 数値列タイプ
: その長さ修飾子は 最大表示幅 を表し、フィールドの物理的なストレージとは関係ありません。言い換えれば、 tinyint(1) と tinyint(4) が格納できる数値範囲は両方とも -128...127 (または符号なし値の場合は 0...255) です。これらは 同じ データ型。もちろんそのままです。若干の違いがあります。これについては以下で説明します。 tinyint データ型の場合、
1 バイトのみを占有します: - unsigned (符号なし)、範囲は 0 ~ 255、デフォルトの長さは 3 です。

- 符号付き、範囲は -128 ~ 127、デフォルトの長さは 4 です。


Range アルゴリズム
: tinyint は 1 バイトを占め、1 バイトは 8 ビット、つまり 1*8=8 で、表現できる数値の数は 8 倍です。 2 平方 (2^8 = 256 個の数値)。

相違点

:

zerofillを使用した場合、実際の長さが指定した表示長に達しない場合、先頭に0が埋め込まれます。 (zerofillの略はゼロを埋めることです)Test

まずテストテーブルを作成し、tinyint型にzerofillを使用します。

CREATE TABLE `pre_demo` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
  `unsigned_t` tinyint(3) unsigned zerofill NOT NULL DEFAULT '000',
  `signed_t` tinyint(4) unsigned zerofill NOT NULL DEFAULT '0000',
  `t1` tinyint(1) unsigned zerofill NOT NULL DEFAULT '0',
  `t2` tinyint(2) unsigned zerofill NOT NULL DEFAULT '00',
  `t3` tinyint(3) unsigned zerofill NOT NULL DEFAULT '000',
  `t4` tinyint(4) unsigned zerofill NOT NULL DEFAULT '0000',
  `t5` tinyint(5) unsigned zerofill NOT NULL DEFAULT '00000',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

次に、テストデータを挿入します。

NSERT INTO pre_demo VALUES(NULL,8,8,8,8,8,8,8);
INSERT INTO pre_demo VALUES(NULL,123,123,123,123,123,123,123);

最後に、データ テーブル内のデータをクエリします。

ああああああ

以上がMysql tinyint(1) と tinyint(4) の違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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