SQL さまざまなデータベースで使用されるデータ型


Microsoft Access、MySQL、SQL Server で使用されるデータ型と範囲。


Microsoft Access データ型

データ型 説明 格納
Text テキスト、またはテキストと数字の組み合わせに使用。最大255文字。
Memo Memo はより大量のテキストに使用。最大65,536文字を格納。注釈:memo フィールドは並べ替えできません。ただし、検索は可能です。
Byte 0 から 255 の数値を許可。 1 バイト
Integer -32,768 から 32,767 までのすべての数値を許可。 2 バイト
Long -2,147,483,648 から 2,147,483,647 までのすべての数値を許可。 4 バイト
Single 単精度浮動小数点。ほとんどの小数を処理。 4 バイト
Double 倍精度浮動小数点。ほとんどの小数を処理。 8 バイト
Currency 通貨に使用。15桁の整数部と4桁の小数部をサポート。ヒント:使用する国の通貨を選択できます。 8 バイト
AutoNumber AutoNumber フィールドは各レコードに自動的に番号を割り当てます。通常は 1 から始まります。 4 バイト
Date/Time 日付と時刻に使用 8 バイト
Yes/No 論理フィールド。Yes/No、True/False、On/Off で表示できます。コードでは、定数 True と False(1 と 0 に相当)を使用します。注釈:Yes/No フィールドでは Null 値は許可されません。 1 ビット
Ole Object 画像、音声、ビデオ、その他の BLOB(Binary Large OBjects)を格納できます。 最大 1GB
Hyperlink Web ページを含む他のファイルへのリンクを格納します。
Lookup Wizard ドロップダウンリストから選択できるオプションリストを作成できます。 4 バイト


MySQL データ型

MySQL には、主に Text(テキスト)、Number(数値)、Date/Time(日付/時刻)の 3 つのタイプがあります。

Text 型:

データ型 説明
CHAR(size) 固定長の文字列を保存(文字、数字、特殊文字を含む)。括弧内で文字列の長さを指定。最大255文字。
VARCHAR(size) 可変長の文字列を保存(文字、数字、特殊文字を含む)。括弧内で文字列の最大長を指定。最大255文字。注釈:値の長さが 255 を超える場合、TEXT 型に変換されます。
TINYTEXT 最大長255文字の文字列を格納。
TEXT 最大長65,535文字の文字列を格納。
BLOB BLOB(Binary Large OBjects)に使用。最大65,535バイトのデータを格納。
MEDIUMTEXT 最大長16,777,215文字の文字列を格納。
MEDIUMBLOB BLOB(Binary Large OBjects)に使用。最大16,777,215バイトのデータを格納。
LONGTEXT 最大長4,294,967,295文字の文字列を格納。
LONGBLOB BLOB(Binary Large OBjects)に使用。最大4,294,967,295バイトのデータを格納。
ENUM(x,y,z,etc.) 可能な値のリストを入力できます。ENUM リストには最大65,535個の値を列挙できます。リストに存在しない値を挿入すると、空の値が挿入されます。

注釈:これらの値は、入力した順序で並べ替えられます。

可能な値は次の形式で入力できます: ENUM('X','Y','Z')

SET ENUM に似ていますが、SET は最大64個のリスト項目しか含めることができず、SET は複数の選択肢を格納できます。

Number 型:

データ型 説明
TINYINT(size) 符号付き -128 から 127、符号なし 0 から 255。
SMALLINT(size) 符号付き範囲 -32768 から 32767、符号なし 0 から 65535、size のデフォルトは 6。
MEDIUMINT(size) 符号付き範囲 -8388608 から 8388607、符号なし範囲は 0 から 16777215。 size のデフォルトは 9。
INT(size) 符号付き範囲 -2147483648 から 2147483647、符号なし範囲は 0 から 4294967295。 size のデフォルトは 11。
BIGINT(size) 符号付き範囲は -9223372036854775808 から 9223372036854775807、符号なし範囲は 0 から 18446744073709551615。 size のデフォルトは 20。
FLOAT(size,d) 浮動小数点数を伴う小さい数値。size パラメータで表示可能な最大桁数を指定。d パラメータで小数点以下の最大桁数を指定。
DOUBLE(size,d) 浮動小数点数を伴う大きな数値。size パラメータで表示可能な最大桁数を指定。d パラメータで小数点以下の最大桁数を指定。
DECIMAL(size,d) 文字列として格納される DOUBLE 型で、固定小数点を許可。size パラメータで表示可能な最大桁数を指定。d パラメータで小数点以下の最大桁数を指定。

注意:上記の size はデータベースに格納される具体的な長さを表すわけではありません。たとえば int(4) は長さ4の数値しか格納できないというわけではありません。

実際、int(size) がどれだけのストレージ容量を占めるかは関係ありません。int(3)、int(4)、int(8) はディスク上ではすべて 4 バイトのストレージ容量を占有します。ユーザーに表示される方法が少し異なるだけで、int(M) は int データ型と同じです。

例:

1、int の値が 10 の場合(zerofill 指定)

int(9)显示结果为000000010
int(3)显示结果为010

表示される長さが異なるだけで、どちらも4バイトの領域を占有します。

Date 型:

データ型 説明
DATE() 日付。形式:YYYY-MM-DD

注釈:サポート範囲は '1000-01-01' から '9999-12-31' まで。

DATETIME() *日付と時刻の組み合わせ。形式:YYYY-MM-DD HH:MM:SS

注釈:サポート範囲は '1000-01-01 00:00:00' から '9999-12-31 23:59:59' まで。

TIMESTAMP() *タイムスタンプ。TIMESTAMP 値は Unix エポック('1970-01-01 00:00:00' UTC)からの秒数を使用して格納されます。形式:YYYY-MM-DD HH:MM:SS

注釈:サポート範囲は '1970-01-01 00:00:01' UTC から '2038-01-09 03:14:07' UTC まで。

TIME() 時刻。形式:HH:MM:SS

注釈:サポート範囲は '-838:59:59' から '838:59:59' まで。

YEAR() 2桁または4桁形式の年。

注釈:4桁形式で許可される値:1901 から 2155。2桁形式で許可される値:70 から 69。1970 から 2069 を表します。

*DATETIME と TIMESTAMP は同じ形式を返しますが、動作は大きく異なります。INSERT または UPDATE クエリでは、TIMESTAMP は自動的に現在の日付と時刻に設定されます。TIMESTAMP は YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD、YYMMDD などの異なる形式も受け入れます。


SQL Server データ型

String 型:

データ型 説明 格納
char(n) 固定長の文字列。最大 8,000 文字。 Defined width
varchar(n) 可変長の文字列。最大 8,000 文字。 2 bytes + number of chars
varchar(max) 可変長の文字列。最大 1,073,741,824 文字。 2 bytes + number of chars
text 可変長の文字列。最大 2GB のテキストデータ。 4 bytes + number of chars
nchar 固定長のUnicode文字列。最大4,000文字。 Defined width x 2
nvarchar 可変長のUnicode文字列。最大4,000文字。
nvarchar(max) 可変長のUnicode文字列。最大536,870,912文字。
ntext 可変長のUnicode文字列。最大2GBのテキストデータ。
bit 0、1、またはNULLを許可
binary(n) 固定長のバイナリ文字列。最大8,000バイト。
varbinary 可変長のバイナリ文字列。最大8,000バイト。
varbinary(max) 可変長のバイナリ文字列。最大2GB。
image 可変長のバイナリ文字列。最大2GB。

Number 型:

データ型 説明 ストレージ
tinyint 0から255までのすべての数値を許可します。 1バイト
smallint -32,768から32,767までのすべての数値を許可します。 2バイト
int -2,147,483,648から2,147,483,647までのすべての数値を許可します。 4バイト
bigint -9,223,372,036,854,775,808から9,223,372,036,854,775,807までのすべての数値を許可します。 8バイト
decimal(p,s) 固定精度とスケールの数値。

-10^38 +1 から 10^38 -1 までの数値を許可します。

p パラメータは、格納できる最大桁数(小数点の左側と右側)を示します。p は 1 から 38 までの値である必要があります。デフォルトは 18 です。

s パラメータは、小数点の右側に格納される最大桁数を示します。s は 0 から p までの値である必要があります。デフォルトは 0 です。

5〜17バイト
numeric(p,s) 固定精度とスケールの数値。

-10^38 +1 から 10^38 -1 までの数値を許可します。

p パラメータは、格納できる最大桁数(小数点の左側と右側)を示します。p は 1 から 38 までの値である必要があります。デフォルトは 18 です。

s パラメータは、小数点の右側に格納される最大桁数を示します。s は 0 から p までの値である必要があります。デフォルトは 0 です。

5〜17バイト
smallmoney -214,748.3648 から 214,748.3647 までの通貨データ。 4バイト
money -922,337,203,685,477.5808 から 922,337,203,685,477.5807 までの通貨データ。 8バイト
float(n) -1.79E + 308 から 1.79E + 308 までの浮動小数点数データ。

n パラメータは、このフィールドが4バイトか8バイトのどちらを格納するかを示します。float(24) は4バイト、float(53) は8バイトを格納します。n のデフォルトは 53 です。

4または8バイト
real -3.40E + 38 から 3.40E + 38 までの浮動小数点数データ。 4バイト

Date 型:

データ型 説明 ストレージ
datetime 1753年1月1日から9999年12月31日まで、精度は3.33ミリ秒です。 8バイト
datetime2 1753年1月1日から9999年12月31日まで、精度は100ナノ秒です。 6〜8バイト
smalldatetime 1900年1月1日から2079年6月6日まで、精度は1分です。 4バイト
date 日付のみを格納します。0001年1月1日から9999年12月31日まで。 3 bytes
time 時間のみを格納します。精度は100ナノ秒です。 3〜5バイト
datetimeoffset datetime2 と同じですが、タイムゾーンオフセットが追加されます。 8〜10バイト
timestamp 行が作成または変更されるたびに更新される一意の数値を格納します。timestamp 値は内部クロックに基づいており、実際の時間には対応しません。各テーブルには timestamp 変数を1つだけ持つことができます。  

その他のデータ型:

データ型 説明
sql_variant text、ntext、timestamp を除く、さまざまなデータ型のデータを最大8,000バイト格納します。
uniqueidentifier グローバル一意識別子 (GUID) を格納します。
xml XML 形式のデータを格納します。最大2GB。
cursor データベース操作に使用されるポインタへの参照を格納します。
table 後で処理するために結果セットを格納します。
その他の拡張機能