MySQL における tinyint と int の違いの詳細な説明

MySQL における tinyint と int の違いの詳細な説明

質問: int(1) と tinyint(1) の違いは何ですか?

このような設計では、いずれにしても int(1) を書くことはありません。

確認したところ、MySQLでストレージタイプを設定すると、ストレージは固定長、つまりint(1) 和int(4) 在硬盤中所占的字節數都是一樣的がわかりました。

int 型は 4 バイトを占め、tinyint 型は 1 バイトを占めることが分かっています。 int(1) と int(4) は、長さと保存方法の点では同じです。唯一の違いは表示される長さです。ただし、パラメータを設定する必要があります。列制定了zerofill 就會用0填充顯示。この場合、int(4) は 0002 として表示されます。

int(1)和tinyint(4) 相比,肯定int 大

数値型の後の括弧内の数字は長さではなく表示幅を示しており、varchar や char の後の数字の意味とは異なることに注意してください。

つまり不管int 后面的數字是多少,它存儲的范圍始終是-2^31 到2^31 - 1

要約すると、整数データ型の括弧内にいくつの数字があっても、占有されるストレージスペースは同じです。

tinyint 1バイト smallint 2バイト MEDIUMINT 3バイト

明らかに、データベースを設計する際にはint(1) 和tinyint(1)選擇tinyint(1)占的儲存空間越少越好,當然要夠用才行。このような1桁のフィールドを保存するには、tinyint(1)を使用する方が適切です。

要約:

  • 1. 型を指定した後は固定長で保存されます。int(1)とint(4)は長さと保存方法が同じです。 MySQLでは、int(1)とint(4)の差は表示される長さですが、パラメータを設定する必要があります。列にzerofillが指定されている場合は、0で埋められます。たとえば、2 int(3)が指定されている場合は、002と表示されます。
  • 2.int は保存に 4 バイト、tinyint は保存に 1 バイトを占有し、保存長によって、表す数値の範囲が決まります。 int によって表される数値の範囲は、-2^31 (-2,147,483,648) から 2^31 – 1 (2,147,483,647) までの整数データ (すべての数値) です。 tinyint は 0 から 255 までの数値を表します。
  • 3. Tinyint(1) は tinyint(3) と違いはありません。123 を格納できます。ただし、tinyint(3) がゼロフィルされている場合、値 12 が挿入されると、012 が格納されます。ゼロフィルは自動的に左側にゼロを埋め込むため、表示長が制限されます。

上記の要約は少し乱雑です。以下に簡単な要約を示します。

tinyint(1) と tinyint(3) の間に違いはありません。どちらも 1 バイトを占有し、同じストレージ範囲を持ちます。

tinyint(3) zerofill 、挿入されたデータが3桁未満の場合は、表示長を制限するために左邊自動補零

Int(1)とtinyint(1)で十分な場合は、占字節少、節省空間ため優先選擇tinyint(1)

tinyint 1 バイト、smallint 2 バイト、MEDIUMINT 3 バイト、int 4 バイト、BIGINT 8 バイト。

ただし、varchar(5) の 5 は、値に関係なく (中国語、英語、数字などに関係なく)、保存できる文字数を制限します。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • MySQL の int、bigint、smallint、tinyint の違いについて詳しく紹介します。
  • mysqlのTINYINTの値の範囲
  • MySQLの整数データ型tinyintの詳細な説明
  • MySQLにおけるTinyint(1)とTinyint(4)の違いの詳細な分析

<<:  Rancher のデプロイメントと K8S クラスターのインポートに関する問題

>>:  TypeScriptの基本型の詳細な説明

推薦する

Nginx 構成 80 ポート アクセス 8080 とプロジェクト名アドレス メソッド分析

Tomcatはプロジェクトにアクセスします。通常はIP + ポート + プロジェクト名です。 Ngi...

CSS はモバイル互換性の問題を解決するために 0.5px の線を実装します (推奨)

【コンテンツ】: 1.背景画像のグラデーションスタイルを使用する2. スケールを使ってズームできる...

リンクAの意味論、書き方、ベストプラクティス

リンク A のセマンティクス、ライティング スタイル、およびベスト プラクティス。私は JavaEy...

MySQL で遅い SQL 文を見つける方法

MySQL で遅い SQL ステートメントを見つけるにはどうすればよいでしょうか?これは、多くの人を...

JSのバイナリファミリーについての簡単な説明

目次概要ブロブBlob の動作BLOB ダウンロード ファイルブロブ画像のローカル表示BLOB ファ...

MySQLインデックスの詳細な分析

序文インデックスの選択はオプティマイザ段階の作業であることはわかっていますが、オプティマイザは万能で...

フレックスレイアウトではサブアイテムの高さを維持できる

Flex レイアウトを使用すると、水平に配置すると、すべての子項目の高さが同じになることがわかります...

thead、tfoot、tbodyを使用して表を作成します

これらの 3 つのタグを間違った方法で使用して、タイトルを表に沿わせたり、tbody の高さを固定し...

MySQL におけるさまざまな一般的な結合テーブルクエリの例の概要

この記事では、例を使用して、MySQL のさまざまな一般的な結合テーブルクエリについて説明します。ご...

Vueのprovideとinjectの使い方と原則を分析する

まず、provide/inject を使用する理由について説明しましょう。祖父コンポーネントと孫コン...

MySql 8.0.16 バージョンのインストールでは、「UTF8B3」ではなく「UTF8B4」が使用されるように求められます。

MySQL 8.0.16 にインストールする場合、「UTF8B3」ではなく「UTF8B4」が使用さ...

ノードをMySQLデータベースに接続する際に発生する問題と解決策

今日、MySQL の新しいバージョン (8.0.21) をインストールしましたが、ノード フレームワ...

jsでライトスイッチの効果を実現

この記事の例では、ライトスイッチ効果を実現するためのjsの具体的なコードを参考までに共有しています。...

PythonはデータベースMySQLの解凍バージョンのインストール構成に接続し、問題が発生しました

導入今日は Python でデータベースに接続する方法を学んだので、MySQL データベースをインス...