MySQL INT データ型

author
1 minute, 19 seconds Read

概要:このチュートリアルでは、MySQL INTまたは整数データ型について学び、それをデータベーステーブル設計で使用する方法について説明します。 さらに、整数カラムの表示幅と ZEROFILL 属性の使用方法も紹介します。

MySQL INT 型の紹介

MySQL では、INT は整数である整数を表しています。 整数は、例えば、1、100、4、-10 のように分数成分なしで書くことができ、1.2、5/3 などにはできません。

MySQL は標準的な SQL の整数型 INTEGER または INTSMALLINT をすべてサポートしています。 さらに、MySQL は標準 SQL の拡張として TINYINT MEDIUMINT および BIGINT を提供しています。

MySQL INT データ型は符号付きおよび符号なしが可能です。 次の表は、バイト単位での保存、最小値、最大値など、各整数型の特徴を示しています。

の場合

0

Type Storage Minimum Value Maximum Value
(バイト) (符号付き/符号なし)
TINYINT 1 -…128 127
0 255
smallint 2 -…32768 32767
65535
mediumint 3 – の場合。8388608 8388607
0 16777215
int 4 -の場合。2147483648 2147483647
0 4294967295
bigint 8 – の場合。9223372036854775808 9223372036854775807
0 18446744073709551615

MySQL INTデータ型の例

整数データ型の使用例をいくつか見てみましょう。

A) MySQL INT をカラムに使用する例

整数型は正確な数値を表すので、通常はテーブルの主キーとして使用します。 さらに、INTカラムはAUTO_INCREMENT 属性を持つことができます。

INT AUTO_INCREMENTカラムにNULL値または0を挿入すると、カラムの値が次のシーケンス値に設定されます。 シーケンス値は1.

AUTO_INCREMENTカラムにNULLまたは0でない値を挿入すると、カラムはその値を受け入れることに注意してください。 さらに、シーケンスは挿入された値の次の値にリセットされます。

最初に、主キーとして整数列を持つitemsという新しいテーブルを作成します。

Code language: SQL (Structured Query Language) (sql)

上記のCREATE TABLEステートメントのINTまたはINTEGERは交換可能であるのでどちらかを使用することも可能です。 itemsテーブルに新しい行を挿入するたびに、item_id列の値は1ずつ増加します。

次に、次のINSERTステートメントでitemsテーブルに3行を挿入しています。

Code language: SQL (Structured Query Language) (sql)

次に、次のSELECTステートメントを使用してitemsテーブルからデータを照会します。

Code language: SQL (Structured Query Language) (sql)

その後、item_id列の値を明示的に指定した新しい行を挿入します。

Code language: SQL (Structured Query Language) (sql)

item_id列の現在の値が10なので、配列は11にリセットされています。 新しい行を挿入すると、AUTO_INCREMENT カラムは次の値として 11 を使用します。

Code language: SQL (Structured Query Language) (sql)

最後に、items テーブルのデータを再度照会して結果を確認します。

Code language: SQL (Structured Query Language) (sql)

MySQL 5.1 から、AUTO_INCREMENT カラムは正の値のみを受け付け、負の値は許容しないことに注意します。

B) MySQL INT UNSIGNED の使用例

まず、符号なし整数データ型の列 total_member を持つ classes というテーブルを作成します:

Code language: SQL (Structured Query Language) (sql)

次に、classes テーブルに新しい行を挿入します:

Code language: SQL (Structured Query Language) (sql)

期待通りに動作しました。

三番目に、total_member 列に負の値を挿入しようとしました:

Code language: SQL (Structured Query Language) (sql)

MySQL は次のエラーを発行しました:

Code language: SQL (Structured Query Language) (sql)

MySQL INT with the display width attribute

MySQL では INT データ型と共にディスプレイ幅も指定できる拡張機能が提供されています。 例えば、INT(5) は表示幅が 5 桁の INT を指定します。

表示幅属性は、カラムが格納できる値の範囲を制御しないことに注意することが重要です。 表示幅属性は通常、整数値をフォーマットするためにアプリケーションによって使用されます。 MySQL は、返された結果セットのメタデータとして display width 属性を含みます。

MySQL INT with the ZEROFILL attribute

display width 属性に加えて、MySQL は標準ではない ZEROFILL 属性を提供します。 この場合、MySQL はスペースをゼロに置き換えます。

まず、zerofill_tests という名前のテーブルを作成します。

Code language: SQL (Structured Query Language) (sql)

次に、zerofill_tests テーブルに新しい行を挿入します。

Code language: SQL (Structured Query Language) (sql)

次に、zerofill_tests テーブルからデータを照会します。

Code language: SQL (Structured Query Language) (sql)


The v1 column has a display width 2 including ZEROFILL. その値は 1 したがって出力に 01 とあります。 MySQL は最初のスペースを 0 に置き換えます。

v2 カラムは ZEROFILL を含む 3 つの表示幅を持っています。

v3カラムはZEROFILLを含む表示幅5で、その値は9であるため、MySQLは出力中の数値の先頭に0000を挿入します。

Note that you use ZEROFILL attribute for an integer column, MySQL will automatically add an UNSIGNED attribute to the column.

This tutorial, you have learned how to use the MySQL INT data type for designing database tables.

  • Was it helpful this tutorial?
  • はい いいえ
  • このチュートリアルは役に立ちましたか。
  • Similar Posts

    コメントを残す

    メールアドレスが公開されることはありません。