SQL 各種 DB のデータ型

❮ 前章へ 次章へ ❯

Microsoft Access、MySQL および SQL Server のデータ型と範囲


Microsoft Access のデータ型

データ型 説明 Storage
Text テキストやテキストと数字の組合せに使用。最大 255 文字  
Memo モは大量のテキストに使用。 65,536文字まで保存。 注: memo フィールドのソートはできないが、検索は可能  
Byte 0 から 255 までの数値が指定可 1 byte
Integer 32,768 から 32,767 までの間の数値が指定可 2 bytes
Long -2,147,483,648 から 2,147,483,647 までの間の数値が指定可 4 bytes
Single 単精度浮動小数点 4 bytes
Double 倍精度浮動小数点 8 bytes
Currency 通貨に使用。整数部 15 桁、小数部 4 桁の数値を格納。 チップ: 使用する国の通貨を選択することができる 8 bytes
AutoNumber オートナンバー型フィールドは、通常 1 から始まる番号を各レコード毎に設定する 4 bytes
Date/Time 日付と時間に使用 8 bytes
Yes/No Yes/No、True/False または On/Off のように表示可能な論理フィールド。 コードでは、定数として True と False(-1 と 0 に同じ)を使用する。 注: NULL 値は、Yes/No フィールドでは使用できません 1 bit
Ole オブジェクト 画像、オーディオ、ビデオやその他の BLOB(Binary Large OBjects)を格納。 up to 1GB
Hyperlink web ページを含む、他のファイルへのリンクが含まれる  
Lookup Wizard 選択肢のリストを入力し、その後、ドロップダウン・リストから選択ができる 4 bytes

MySQL のデータ型

MySQL には、文字列、数値および日付/時間の 3 つの主要なデータ型があります。

文字列型:

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

注: 値は、入力順にソートされる。

ENUM('X','Y','Z') のフォーマットで値を入力する

SET SET は、最大64までのリスト項目である点を除き ENUM と同じで、複数の選択肢を格納することができる

数値型:

データ型 説明
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) 浮動小数点数。最大桁数は size パラメータで指定することができる。 小数点以下の桁数の最大値は、d パラメータで指定する
DOUBLE(size,d) 浮動小数点数。最大桁数は size パラメータで指定することができる。 小数点以下の桁数の最大値は、d パラメータで指定する
DECIMAL(size,d) A DOUBLE stored as a string , allowing for a fixed decimal point. 最大桁数は size パラメータで指定することができる。 小数点の右の最大桁数は、d パラメータで指定する

*整数型には、符号なしという特別なオプションがあります。通常、整数は負と正の値から成ります。 UNSIGNED 属性を追加すると、その範囲が上に移動して、負数に代わってゼロからスタートするようになります。

日付型:

データ型 説明
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' to '838:59:59'

YEAR() 2桁または4桁フォーマットの年。

注: 4桁フォーマットで可能な値:1901 ~ 2155。2桁フォーマットで可能な値:70 ~ 69 で、1970年から2069年を表す

*DATETIME と TIMESTAMPは、同じフォーマットを返したとしても、内容は全く異なります。 TIMESTAMP は、INSERT や UPDATE クエリでは自動的に現在の日付と時刻を設定します。 TIMESTAMP は、YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD、またはYYMMDDのような様々な形式も設定できます。


SQL Server のデータ型

文字列型:

データ型 説明 Storage
char(n) 固定幅の文字列。最大8,000文字 幅を定義
varchar(n) 可変幅の文字列。最大8,000文字 2 bytes + 文字数
varchar(max) 可変幅の文字列。最大1,073,741,824文字 2 bytes + 文字数
text 可変幅の文字列。最大2ギガバイトのテキストデータ 4 bytes + n文字数
nchar 固定幅のUnicode文字列。最大4,000文字 定義幅 x 2
nvarchar 可変幅のUnicode文字列。最大4,000文字  
nvarchar(max) 可変幅のUnicode文字列。最大536,870,912文字  
ntext 可変幅のUnicode文字列。最大2ギガバイトのテキストデータ  
bit 0, 1, または NULL  
binary(n) 固定幅のバイナリ文字列。最大8,000バイト  
varbinary 可変幅のバイナリ文字列。最大8,000バイト  
varbinary(max) 可変幅のバイナリ文字列。最大 2GB  
image 可変幅のバイナリ文字列。最大 2GB  

数値型:

データ型 説明 Storage
tinyint 0 ~ 255 の間の整数 1 byte
smallint -32768 ~ 32767 の間の整数 2 bytes
int -2,147,483,648 ~ 2,147,483,647 の間の整数 4 bytes
bigint -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 の間の整数 8 bytes
decimal(p,s) 固定精度およびスケールの数値。

-10^38 +1 ~ 10^38 –1 の間の数値。

p パラメータは、格納できる最大桁数を表す(小数点の左と右側の両方)。 p は 1 から 38 までの値でなければならない。デフォルトは 18

s パラメータは、小数点の右側に格納される最大桁数を表す。 s は 0 から p までの値でなければならない。デフォルト値は 0

5-17 bytes
numeric(p,s) 固定精度およびスケールの数値。

-10^38 +1 ~ 10^38 –1 の間の数値。

p パラメータは、格納できる最大桁数を表す(小数点の左と右側の両方)。 p は 1 から 38 までの値でなければならない。デフォルトは 18

s パラメータは、小数点の右側に格納される最大桁数を表す。 s は 0 から p までの値でなければならない。デフォルト値は 0

5-17 bytes
smallmoney -214,748.3648 ~ 214,748.3647 の通貨データ 4 bytes
money -922,337,203,685,477.5808 ~ 922,337,203,685,477.5807 の通貨データ 8 bytes
float(n) -1.79E + 308 ~ 1.79E + 308 の浮動小数点データ。

n パラメータは、4バイトまたは8バイトを格納するフィールドかどうかを示す。 float(24) は、4バイトのフィールドを持ち、float(53) は 8バイトのフィールドを持っています。 n のデフォルト値は 53 です。

4 or 8 bytes
real -3.40E + 38 ~ 3.40E + 38 の浮動小数点データ 4 bytes

日付型:

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

その他のデータ型:

データ型 説明
sql_variant text、ntext、およびタイムスタンプを除く、さまざまなデータ型のデータを最大8,000バイト格納
uniqueidentifier グローバル一意識別子(GUID)を格納
xml フォーマットのデータを格納。最大 2GB
cursor データベース操作に使用するカーソルへの参照を格納
table 後で処理するために結果セットを格納

❮ 前章へ 次章へ ❯