Categories: SQL言語

SQLのデータ型一覧│数値型や日付型など主要6つの型を詳細解説

SQLで使われるデータ型について。数値型・通貨型・文字列型・日付型/時刻型・ブール型・バイナリ型の主要6つの型を解説します。

それぞれ、範囲や形式、そしてSQL文の例を掲載します。

数値型

データ型名カテゴリ説明
INT整数型一般的な整数データ
SMALLINT整数型範囲が狭い整数データ
TINYINT整数型非常に小さい整数データ
BIGINT整数型非常に大きな整数データ
FLOAT浮動小数点型単精度の浮動小数点数データ
REAL浮動小数点型倍精度の浮動小数点数データ
DECIMAL固定小数点型固定小数点数データ。精度指定可能
NUMERIC固定小数点型固定小数点数データ。精度指定可能
数値型-簡易一覧

INT(整数型)

①範囲:-2,147,483,648から2,147,483,647

②SQL例:CREATE TABLE Employees (EmployeeID INT);

SMALLINT(整数型)

①範囲:-32,768 から 32,767

②SQL例:CREATE TABLE Employees (DepartmentID SMALLINT);

TINYINT(整数型)

①範囲:0 から 255

②SQL例:CREATE TABLE Products (CategoryID TINYINT);

BIGINT(整数型)

①範囲:-9,223,372,036,854,775,808 から 9,223,372,036,854,775,807

②SQL例:CREATE TABLE Orders (OrderID BIGINT);

FLOAT(浮動小数点型)

①範囲:[-3.402823466E+38 から -1.175494351E-38]、[0]、[1.175494351E-38 から 3.402823466E+38]。精度は約7桁

②SQL例:CREATE TABLE Measurements (Temperature FLOAT);

REAL(浮動小数点型)

①範囲:[-1.7976931348623157E+308 から -2.2250738585072014E-308]、[0]、[2.2250738585072014E-308 から 1.7976931348623157E+308]。精度は約15桁

②SQL例:CREATE TABLE Measurements (Pressure REAL);

DECIMAL(固定小数点型)

①範囲:精度とスケールは指定可能 ※例は10桁と小数以下2桁

②SQL例:CREATE TABLE Financials (Price DECIMAL(10, 2));

NUMERIC (固定小数点型)

①範囲:精度とスケールは指定可能 ※例は12桁と小数以下4桁

②SQL例:CREATE TABLE Financials (TotalCost NUMERIC(12, 4));

通貨型

データ型名カテゴリ説明
MONEY通貨型大きな通貨の値を格納する
SMALLMONEY通貨型小さな通貨の値を格納する
通貨型-簡易一覧

MONEY

①範囲:-922,337,203,685,477.5808 から 922,337,203,685,477.5807

②SQL例:CREATE TABLE SalesRecords (TransactionID INT,SaleAmount MONEY);

SMALLMONEY

①範囲:-214,748.3648 から 214,748.3647

②SQL例:CREATE TABLE PettyCash (TransactionID INT,ExpenseAmount SMALLMONEY);

文字列型

データ型名カテゴリ説明
CHAR固定長文字列型固定長の文字列を格納する
VARCHAR可変長文字列型可変長の文字列を格納する
TEXT大文字列型非常に大きな文字列を格納する
CLOB大文字列型非常に大きな文字列を格納する
文字列型-簡易一覧

CHAR(固定長文字列型)

①最大格納可能文字数:1から255文字まで指定可能 ※例は半角50文字

※最大長はデータベースシステムによって異なる

②SQL例:CREATE TABLE CustomerNames (CustomerName CHAR(50));

VARCHAR(可変長文字列型)

①最大格納可能文字数:約65,535文字まで指定可能 ※例は半角255文字

※最大長はデータベースシステムによって異なる

②SQL例:CREATE TABLE ProductDescriptions (Description VARCHAR(255));

TEXT(大文字列型)

①最大格納可能サイズ数:約2GBまでのテキストデータを格納可能

※最大サイズはデータベースシステムによって異なる

②SQL例:CREATE TABLE Articles (ArticleContent TEXT);

CLOB(大文字列型)

①最大格納可能サイズ数:最大2GB以上を格納可能

※一部のデータベースシステムでは4GB以上

②SQL例:CREATE TABLE LegalDocuments (DocumentContent CLOB);

日付型と時刻型

データ型名カテゴリ説明
DATE日付型日付のみを格納する(年、月、日)
TIME時刻型時刻のみを格納する(時、分、秒)
DATETIME日付時刻型日付と時刻の両方を格納する
DATETIME2日付時刻型DATETIMEの拡張で、より広い範囲と精度を格納する
TIMESTAMP日付時刻型一意のタイムスタンプを格納する
文字列型-簡易一覧

DATE(日付型)

①形式:年、月、日を格納する。通常はYYYY-MM-DD

②SQL例:CREATE TABLE Events (EventDate DATE);

TIME(時刻型)

①形式:時、分、秒を格納する。通常はHH:MM:SS

②SQL例:CREATE TABLE Shifts (StartTime TIME);

DATETIME(日付時刻型)

①形式:日付と時刻の両方を格納する。通常はYYYY-MM-DD HH:MM:SS

②SQL例:CREATE TABLE Appointments (AppointmentDateTime DATETIME);

DATETIME2(日付時刻型)

①形式:DATETIMEの拡張で、より広い範囲と高い精度。通常はYYYY-MM-DD HH:MM:SS.sssssss。精度はナノ秒まで。

②SQL例:CREATE TABLE FlightDepartures (DepartureDateTime DATETIME2);

TIMESTAMP(日付時刻型)

①形式:一意のタイムスタンプを格納し、データの追加や更新時に自動的に生成・更新される

※具体的なデータ形式はデータベースシステムによって異なる

②SQL例:CREATE TABLE UserActions (ActionTimestamp TIMESTAMP);

ブール型

データ型名カテゴリ説明
BOOLEANブール型真 (TRUE) または偽 (FALSE) のいずれかの値を格納する
ブール型-簡易一覧

BOOLEAN(ブール型)

①形式:真 (TRUE)、偽 (FALSE)、そして未定義 (NULL) の3つの状態

SQL標準では、BOOLEAN型は真(TRUE)、偽(FALSE)、そしてNULL(未定義の値)の3つの状態を取ることができます。しかし、すべてのDBMSがこの標準を完全には実装していないため、BOOLEAN型の挙動はシステムによって異なる場合があります。

②SQL例(PostgreSQL):CREATE TABLE Users ( UserID INT, IsActive BOOLEAN DEFAULT TRUE );

③SQL例(MySQL):CREATE TABLE Users ( UserID INT, IsActive TINYINT(1) DEFAULT 1 );

バイナリ型

BINARY固定長バイナリ型固定長のバイナリデータを格納する
VARBINARY可変長バイナリ型可変長のバイナリデータを格納する
BLOB大バイナリ型大きなバイナリデータ(Binary Large Object)を格納する
バイナリ型-簡易一覧

BINARY(固定長バイナリ型)

①最大格納可能サイズ数:データベースシステムによって異なる

  • SQL Server: BINARY型の最大サイズは8,000バイトです。これを超えるサイズを必要とする場合は、VARBINARY(MAX)を使用することで、最大約2GBのデータを格納できます。
  • MySQL: BINARY型の最大サイズは255バイトです(バージョンによっては65,535バイトまで可能)。より大きなバイナリデータを扱うにはVARBINARYまたはBLOB型を使用します。
  • PostgreSQL: BINARY型に相当するBYTEA型には、特定の最大サイズの制限はありませんが、実際の使用可能サイズはシステムのアーキテクチャやデータベースの設定に依存します。

②SQL例:CREATE TABLE UserPasswords (UserID INT, PasswordHash BINARY(64));

VARBINARY(可変長バイナリ型)

①最大格納可能サイズ数:データベースシステムによって異なる

  • SQL Server: VARBINARY(MAX)を使用すると、最大約2GB(2^31-1バイト)のデータを格納できます。VARBINARY型の最大サイズは、VARBINARY(8000)までですが、VARBINARY(MAX)を使用することでより大きなデータを扱うことが可能です。
  • MySQL: VARBINARY型の最大サイズは、最大65,535バイトまでです(MySQLのバージョンによって異なる場合があります)。これを超える場合はBLOB型などの他のデータ型を使用する必要があります。
  • PostgreSQL: VARBINARY型に相当するBYTEA型には、特定の最大サイズの制限はありませんが、使用可能なサイズはシステムのアーキテクチャやデータベースの設定に依存します。

②SQL例:CREATE TABLE UserImages (UserID INT, ProfileImage VARBINARY(MAX));

BLOB(大バイナリ型)

①最大格納可能サイズ数:非常に大きなバイナリデータ(Binary Large Object)を格納

②SQL例:CREATE TABLE ProductCatalogs (ProductID INT, CatalogPDF BLOB);

Analytics沖縄

データサイエンス・機械学習・ディープラーニングを本格的に研究するフリーランスエンジニア。 「Google データアナリティクス プロフェッショナル」の認定証を取得済み。 この分野は専門知識がなければ理解し辛い情報が多いのですが、当サイトでは初学者も意識して発信していきますので、ご関心があればぜひご覧ください。

Recent Posts

MySQLの日付型や時刻型で使う関数のフォーマット指定子

今回は、MySQLの日付型や時…

3か月 ago

SQL│文字列を日付型に変換するTo_Date・Convert

今回は、SQLで文字列を日付型…

4か月 ago

SQL│文字列型CHAR・VARCHARの違いと使い分けを解説

今回は、SQLのデータ型のうち…

4か月 ago

SQL|通貨型MONEY・SMALLMONEYの使い所は?

今回は、SQLの通貨型MONE…

4か月 ago