SQLのデータ型

SQL ISNULL 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 に相当) を使用します。

注: Null 値は Yes/No フィールドでは許可されません

1 ビット
Ole Object 画像、オーディオ、ビデオ、またはその他の BLOB (Binary Large OBjects) を保存できます 最大 1GB
Hyperlink には、Web ページなど、他のファイルへのリンクが含まれています。
Lookup Wizard を使用すると、ドロップダウン リストから選択できるオプションのリストを作成できます。 4 バイト

MySQL データ型

MySQL には、テキスト、数値、日付/時刻型の 3 つの主な型があります。

テキストの種類:

データ型 説明
CHAR(size) は、固定長の文字列 (文字、数字、特殊文字を含めることができます) を保存します。 括弧内に文字列の長さを指定します。 最大 255 文字。
VARCHAR(size)

可変長文字列を保存します (文字、数字、特殊文字を含めることができます)。 文字列の最大長を括弧内に指定します。 最大 255 文字。

注: 値の長さが 255 を超える場合は、TEXT 型に変換されます。

TINYTEXT には、最大 255 文字の文字列が格納されます。
TEXT には、最大長 65,535 文字の文字列が保持されます。
BLOB BLOB (Binary Large OBjects) の場合は 。 最大 65,535 バイトのデータを保存します。
MEDIUMTEXT には、最大長 4,294,967,295 文字の文字列が格納されます。
MEDIUMBLOB BLOB (Binary Large OBjects) の場合は 。 最大 4,294,967,295 バイトのデータを保存します。
LONGTEXT には、最大長 4,294,967,295 文字の文字列が格納されます。
LONGBLOB BLOB (Binary Large OBjects) の場合は 。 最大 4,294,967,295 バイトのデータを保存します。
ENUM(x,y,z,etc.)

可能な値のリストを入力できます。 ENUM リストには最大 65535 の値をリストできます。 挿入された値がリストに存在しない場合は、null 値を挿入します。

注: 値は入力した順序で保存されます。

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

SET ENUM と同様、SET には複数の値を格納できますが、SET には最大 64 個のリスト項目しか含めることができません。

Number :

データ型 説明
TINYINT(size) -128 ~ 127 レギュラー。 0 ~ 255 符号なし*。 括弧内に最大桁数を指定します。
SMALLINT(size) -32768 ~ 32767 一般。 0 ~ 65535 符号なし*。 括弧内に最大桁数を指定します。
MEDIUMINT(size) -8388608 ~ 8388607 通常。 0 ~ 16777215 符号なし*。 括弧内に最大桁数を指定します。
INT(size) -2147483648 ~ 2147483647 通常。 0 ~ 4294967295 符号なし*。 括弧内に最大桁数を指定します。
BIGINT(size) -9223372036854775808 ~ 9223372036854775807 一般。 0 ~ 18446744073709551615 署名なし*。 括弧内に最大桁数を指定します。
FLOAT(size,d) 浮動小数点を含む小さい数値。 括弧内に最大桁数を指定します。 dパラメータの小数点以下の最大桁数を指定します。
DOUBLE(size,d) 浮動小数点を含む大きな数値。 括弧内に最大桁数を指定します。 dパラメータの小数点以下の最大桁数を指定します。
DECIMAL(size,d) 文字列として保存される DOUBLE 型。固定小数点を使用できます。

* これらの整数型には追加オプション UNSIGNED があります。 一般に、整数は負または正の値になります。 UNSIGNED 属性を追加すると、範囲は負の数値ではなく 0 から始まります。

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 桁形式で使用できる値: 1970 ~ 2069 を表す 70 ~ 69。

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

SQL Server データ型

Character :

データ型 説明 ストレージ
char(n) 固定長の文字列。 最大 8,000 文字。 n
varchar(n) 可変長の文字列。 最大 8,000 文字。
varchar(max) 可変長の文字列。 最大 1,073,741,824 文字。
text 可変長の文字列。 キャラクターデータは2GBまで。

Unicode :

データ型 説明 ストレージ
nchar(n) 固定長の Unicode データ。 最大 4,000 文字。
nvarchar(n) 可変長 Unicode データ。 最大 4,000 文字。
nvarchar(max) 可変長 Unicode データ。 最大 536,870,912 文字。
ntext 可変長 Unicode データ。 キャラクターデータは2GBまで。

Binary :

データ型 説明 ストレージ
bit 0、1、または NULL を許可します
binary(n) 固定長のバイナリ データ。 最大8,000バイト。
varbinary(n) 可変長バイナリデータ。 最大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 バイト
time は時間のみを保存します。 精度は 100 ナノ秒です。 3 ~ 5 バイト
datetimeoffset datetime2 と同じですが、タイムゾーン オフセットが追加されます。 8 ~ 10 バイト
timestamp には、行が作成または変更されるたびに更新される一意の番号が格納されます。 timestamp は内部クロックに基づいており、リアルタイムには対応しません。 1 つのテーブルに存在できる timestamp 変数は 1 つだけです。

その他のデータ型:

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