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 | 後で処理するために結果セットを格納します。 |