TECH I.S.

MySQL、SQL Server、およびMS AccessのSQLデータ型


列のデータ型は、列が保持できる値(整数、文字、金額、日付と時刻、バイナリなど)を定義します。


SQLデータ型

データベース テーブルの各列には、名前とデータ型が必要です。

SQL開発者は、テーブルを作成するときに、各列に格納するデータの型を決定する必要があります。データ型は、SQLが各列内で期待されるデータの型を理解するためのガイドラインであり、SQLが格納されたデータとどのように相互作用するかも識別します。


注:データベースが異なれば、データ型の名前が異なる場合があります。また、名前が同じでも、サイズやその他の詳細が異なる場合があります。常にドキュメントをチェックしてください!





MySQLデータ型(バージョン 8.0)

MySQLには、文字列、数値、日付と時刻の3つの主なデータ型があります。

文字列データ型

データ・タイプ

説明

CHAR(size) 固定長の文字列 (文字、数字、および特殊文字を含めることができます)のサイズパラメータは列の長さを文字数で指定します。 0から255まで。デフォルトは1です。
VARCHAR(size) 可変長文字列 (文字、数字、および特殊文字を含めることができます) のサイズパラメータは最大文字列を指定します。 文字の長さは、0から65535の範囲で指定できます。
BINARY(size) CHAR() と同じですが、バイナリ バイト文字列を格納します。サイズパラメータは、列の長さをバイト単位で指定します。デフォルトは 1 です。
VARBINARY(size) VARCHAR() と同じですが、バイナリバイト文字列を格納します。サイズパラメータは、列の最大長をバイト単位で指定します。
TINYBLOB BLOB(バイナリ ラージ オブジェクト)の場合。最大長:255バイト
TINYTEXT 最大長255文字の文字列を保持します。
TEXT(size) 最大長65,535バイトの文字列を保持します。
BLOB(size) BLOB (バイナリ ラージ オブジェクト) の場合。最大 65,535 バイトのデータを保持します。
MEDIUMTEXT 最大長16,777,215文字の文字列を保持します。
MEDIUMBLOB BLOB(バイナリ ラージ オブジェクト)の場合。最大16,777,215バイトのデータを保持します。
LONGTEXT 最大長4,294,967,295文字の文字列を保持します。
LONGBLOB BLOB(バイナリ ラージ オブジェクト)の場合。最大4,294,967,295バイトのデータを保持します。
ENUM(val1、val2、val3、...) 可能な値のリストから選択された値を 1 つだけ持つことができる文字列オブジェクト。 ENUMリストには最大65535個の値をリストできます。リストにない値が挿入されると、空白の値が挿入されます。 値は入力順にソートされます。
SET(値 1、値 2、値 3、...) 0個以上の値を持つことができる文字列オブジェクト。SETリストには最大64個の値を列挙することができます。

数値データ型

データ・タイプ

説明

BIT(サイズ) ビット値型。値ごとのビット数は、サイズ. のサイズパラメータは 1 から 64 までの値を保持できます。デフォルトは value サイズは1です。
TINYINT(サイズ) 非常に小さい整数。符号付きの範囲は、-128~127です。符号なしの範囲は、 0~255です。サイズパラメータは最大表示幅(255)を指定します。
BOOL 0はFalseと見なされ、0以外の値はTrueと見なされます。
BOOLEAN BOOLに等しい。
SMALLINT(サイズ) 小さい整数。符号付きの範囲は、-32768~32767です。符号なしの範囲は、 0~65535です。サイズパラメータは最大表示幅 (255)を指定します。
MEDIUMINT(サイズ) 中間の整数。符号付きの範囲は、-8388608~8388607です。符号なしの 範囲は0~16777215です。サイズパラメータは 最大表示幅 (255)を指定します。
INT(サイズ) 中間の整数。符号付き範囲は、-2147483648~2147483647です。 符号なしの範囲は、0~4294967295です。サイズパラメータ 最大表示幅 (255) を指定します。
INTEGER(サイズ) INT(サイズ)に等しい。
BIGINT(サイズ) 大きな整数。符号付き範囲は、-9223372036854775808~ 9223372036854775807。符号なしの範囲は、0~18446744073709551615 です。サイズパラメータは、最大表示幅(255)を指定します。
FLOAT(サイズd) 浮動小数点数。総桁数はサイズで指定する。小数点以下の桁数は dパラメータで指定。この構文は、MySQL 8.0.17では非推奨です。 将来のMySQLバージョンでは削除される予定です。
FLOAT(p) 浮動小数点数。 MySQL はp値を使用して、 結果のデータ型にFLOATまたはDOUBLEのどちらを使用するかを決定します。pが0~24の場合、データ型はFLOAT()になります。pが25〜 53の場合、データ型はDOUBLE()になります。
DOUBLE(サイズd) 通常サイズの浮動小数点数。総桁数はサイズで指定する。小数点以下の桁数は dパラメータで指定する。
DOUBLE PRECISION(サイズd)
DECIMAL(サイズd) 正確な固定小数点数。総桁数はサイズで指定する。小数点以下の桁数は dパラメータで指定する。サイズの最大数は65です。 dの最大数は30です。サイズのデフォルト値は10です。dのデフォルト値は0です。
DEC(サイズd) DECIMAL(サイズ,d)に等しい。

注:すべての数値データ型には、UNSIGNEDまたはZEROFILLという追加のオプションがあります。 UNSIGNEDオプションを追加すると、MySQLは列に負の値を許可しません。ZEROFILLオプションを追加すると、MySQLは自動的にUNSIGNED属性も列に追加します。

日付と時刻のデータ型



データ・タイプ

説明

DATE 日付フォーマット:YYYY-MM-DD。サポートされる範囲は 「1000-01-01」 から 「9999-12-31」までです。
DATETIME(fsp) 日付と時刻の組み合わせ。形式: YYYY-MM-DD hh:mm:ss。サポートされている範囲は、「1000-01-01 00:00:00」から「9999-12-31 23:59:59」です。 列定義にDEFAULTとON UPDATE を追加して、自動化する。 初期化と現在の日付と時刻への更新を行います。
TIMESTAMP((fsp) タイムスタンプ。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までです。カラム定義でDEFAULT CURRENT_TIMESTAMPとON UPDATE CURRENT_TIMESTAMPを使用して、現在の日付と時刻への自動初期化と更新を指定することができます。
TIME(fsp) 時間。フォーマット: hh:mm:ss.サポートされている範囲は「-838:59:59」から「838:59:59」です。
YEAR 4桁形式の年。4桁の形式で使用できる値: 1901~2155、および0000。

MySQL8.0は、2桁形式の年をサポートしていません。


SQL Serverのデータ型

文字列データ型

データ・タイプ

説明

最大サイズ

ストレージ

char(n) 固定長文字列 8,000文字 定義された幅
varchar(n) 可変幅文字列 8,000文字 2バイト + 文字数
varchar(最大) 可変幅文字列 1,073,741,824文字 2バイト+文字数
text 可変幅文字列 2GBのテキストデータ 4バイト+文字数
nchar 固定幅のUnicode文字列 4,000文字 規定幅×2
nvarchar 可変幅のUnicode文字列 4,000文字
nvarchar(最大) 可変幅のUnicode文字列 536,870,912 文字
ntext 可変幅のUnicode文字列 2GBのテキストデータ
binary(n) 固定幅のバイナリ文字列 8,000バイト
varbinary 可変幅のバイナリ文字列 8,000バイト
varbinary(最大) 可変幅のバイナリ文字列 2GB
image 可変幅のバイナリ文字列 2GB

数値データ型

データ・タイプ

説明

ストレージ
bit 0、1、またはNULLの整数
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バイト

日付と時刻のデータ型

データ・タイプ

説明

ストレージ

datetime 1753年1月1日から9999年12月31日まで、3.33ミリ秒の精度で 8バイト
datetime2 0001年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 行が作成または変更されるたびに更新される一意の番号を格納します。タイムスタンプ値は内部クロックに基づいており、リアルタイムには対応していません。各テーブルには、タイムスタンプ変数を1つだけ含めることができます。

その他のデータ型

データ・タイプ

説明

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

MS Accessのデータ型

データ・タイプ 説明

ストレージ

Text テキストまたはテキストと数字の組み合わせに使用します。最大255文字
Memo メモは大量のテキストに使用されます。最大65,536文字を格納します。注:メモ欄はソートできません。ただし、それらは検索可能です。
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 オートナンバー型フィールドは、各レコードに独自の番号を自動的に付けます。通常は1から始まります。 4バイト
Date/Time 日付と時刻に使用。 8バイト
Yes/No 論理フィールドは、Yes/No、True/False、または On/Off として表示できます。コードでは、定数TrueおよびFalse(-1および0に相当)を使用します。注:Yes/NoフィールドにNull値は使用できません。 1ビット
Ole Object 写真、オーディオ、ビデオ、またはその他のBLOB(バイナリ ラージ オブジェクト)を保存できます。 最大1GB
Hyperlink Webページを含む他のファイルへのリンクを含む。
Lookup Wizard オプションのリストを入力して、ドロップダウンリストから選択できます。 4バイト


プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細