整数型

広告

ここでは数値型の中でも整数型について確認していきます。

整数型は次の5つが用意されています。

TINYINT
  -128から127 (符号無しの場合0から255)

SMALLINT
  -32768から32767 (符号無しの場合0から65535)

MEDIUMINT
  -8388608から8388607 (符号無しの場合0から16777215)

INT
  -2147483648から2147483647 (符号無しの場合0から4294967295)
  別名:INTEGER

BIGINT
  -9223372036854775808から9223372036854775807
  (符号無しの場合0から18446744073709551615)

例としてTINYINT型のカラムを1つ持つテーブルを作成してみます。

p1-1

整数型は5種類用意されていますが、各データ型には格納できる値の範囲が決まっています。範囲を超えた値を格納しようとするとエラーが発生します。

p1-2

TINYINT型は格納可能な範囲は-128から127です。その為、100を格納する場合は問題ありませんが200を格納しようとすると範囲を超えているためエラーとなります。

UNSIGNED

各値は正の数と負の数を扱うことができますが、UNSIGNEDを付けると正の数しか格納できなくなります。その代わり範囲は2倍となります。使い方は次の通りです。

TINYINT UNSIGNED

例としてTINYINT UNSIGNED型のカラムを1つ持つテーブルを作成してみます。

p1-3

データを追加してみます。

p1-4

TINYINT型は格納可能な範囲は-128から127でしたがTINYINT UNSIGNED型は格納可能な範囲が0から255です。その為、200を格納する場合は問題ありませんが-10を格納しようとすると範囲を超えているためエラーとなります。

ZEROFILL

データ型にZEROFILLを付けるとデータ型の桁数分だけ0で埋められます。使い方は次の通りです。

TINYINT ZEROFILL

※ZEROFILLを付けると自動的にUNSIGNEDが付きます

例としてTINYINT ZEROFILL型とTINYINT型のカラムを持つテーブルを作成してみます。

p1-5

データを追加して後でテーブルのデータを取得してみます。

p1-6

TINYINT型は3桁の数値を格納しますので、TINYINT ZEROFILL型の方のカラムは1桁や2桁の数値を格納された場合は3桁分まで0で埋められます。TINYINT型の方は桁数分だけ空白で埋められます。

表示幅

各データ型は表示幅を設定することができます。使い方は次の通りです。

TINYINT(N)

Nには幅を表す数値を指定して下さい。

幅を指定すると指定した幅で数値が表示されます。ただ、本来使用可能な桁数よりも小さい表示幅を指定した場合に、表示幅よりも大きい値を指定すると表示幅の設定は無視されます。

例としてSMALLINT(3) ZEROFILL型とSMALLINT ZEROFILL型のカラムを持つテーブルを作成してみます。

p1-7

データを追加して後でテーブルのデータを取得してみます。

p1-8

SMALLINT(3) ZEROFILL型は表示幅が3桁となっていますので3桁の数値として表示されます。SMALLINT型は5桁の型ですので表示幅を指定していない方は5桁の数値として表示されます。

ただ表示幅を指定していても格納可能な数値の範囲が3桁になったわけではありません。4桁以上の数値を格納することもできますし、表示する場合は4桁以上の数値は表示幅の設定に関係無く表示されます。

p1-9

( Written by Tatsuo Ikura )