はじめに

本記事では、Verticaで「サポートされているデータ型」をご紹介します。

サポートされているデータ型

以下、表内の「NULL 並び順」は、各データ型にNULLが含まれる場合の配置先を示します。

文字列型

データ型列のサイズ ( バイト )説明NULL 並び順
CHAR1 ~ 65,000固定長の文字および特殊文字を保持します。
最大長は65,000バイトです。最小サイズは1バイト(デフォルト)です。
最後
VARCHAR1 ~ 65,000可変長の文字および特殊文字を保持します。
最大長は65,000バイトです。最小サイズは1バイトです。デフォルトは80バイトです
最後
LONG VARCHAR1 ~ 32,000,000可変長の英字、数字、記号を保持します。最後

整数型

データ型列のサイズ ( バイト )説明NULL 並び順
INTEGER8最小値/最大値:-9,223,372,036,854,775,807~9,223,372,036,854,775,807
※-9,223,372,036,854,775,808はNULLを表すために予約されています。
先頭
INT8最小値/最大値:-9,223,372,036,854,775,807~9,223,372,036,854,775,807
※-9,223,372,036,854,775,808はNULLを表すために予約されています。
先頭
BIGINT8最小値/最大値:-9,223,372,036,854,775,807~9,223,372,036,854,775,807
※-9,223,372,036,854,775,808はNULLを表すために予約されています。
先頭
INT88最小値/最大値:-9,223,372,036,854,775,807~9,223,372,036,854,775,807
※-9,223,372,036,854,775,808はNULLを表すために予約されています。
先頭
SMALLINT8通常サイズの整数。
最小値/最大値:-9,223,372,036,854,775,807~9,223,372,036,854,775,807
※-9,223,372,036,854,775,808はNULLを表すために予約されています。
先頭
TINYINT8通常サイズの整数。
最小値/最大値:-9,223,372,036,854,775,807~9,223,372,036,854,775,807
※-9,223,372,036,854,775,808はNULLを表すために予約されています。
先頭
DECIMAL8以上指定された精度とスケールの数値を正確に表現できる数値型です。
指定できる最大精度は1024です。
デフォルトの精度は37、スケールは15です。
先頭
NUMERIC8以上指定された精度とスケールの数値を正確に表現できる数値型です。
指定できる最大精度は1024です。
デフォルトの精度は37、スケールは15です。
先頭
NUMBER8以上指定された精度とスケールの数値を正確に表現できる数値型です。
指定できる最大精度は1024です。
デフォルトの精度は38、スケールは0です。
先頭
MONEY8以上指定された精度とスケールの数値を正確に表現できる数値型です。
指定できる最大精度は1024です。
デフォルトの精度は18、スケールは4です。
先頭

浮動小数点型

データ型列のサイズ ( バイト )説明NULL 並び順
DOUBLE PRECISION864ビットのIEEE-754浮動小数点形式で格納されます。
近似値として格納されるため、特定の値を格納して返すと若干の相違が生じる場合があります。
正確な格納および計算が必要な場合は (金額の場合など)、NUMERIC型を使用してください。
最小値/最大値:-1.79E+308~+1.79E+308
最大精度は15桁です(整数+小数点以下桁数)。
最後
FLOAT864ビットのIEEE-754浮動小数点形式で格納されます。
近似値として格納されるため、特定の値を格納して返すと若干の相違が生じる場合があります。
正確な格納および計算が必要な場合は (金額の場合など)、NUMERIC型を使用してください。
最小値/最大値:-1.79E+308~+1.79E+308
最大精度は15桁です(整数+小数点以下桁数)。
最後
FLOAT(n)864ビットのIEEE-754浮動小数点形式で格納されます。
近似値として格納されるため、特定の値を格納して返すと若干の相違が生じる場合があります。
正確な格納および計算が必要な場合は (金額の場合など)、NUMERIC型を使用してください。
nには1から53までの値を指定することができますが、どの値を指定しても常に53が使用されます。
最小値/最大値:-1.79E+308~+1.79E+308
最大精度は15桁です(整数+小数点以下桁数)。
最後
FLOAT8864ビットのIEEE-754浮動小数点形式で格納されます。
近似値として格納されるため、特定の値を格納して返すと若干の相違が生じる場合があります。
正確な格納および計算が必要な場合は (金額の場合など)、NUMERIC型を使用してください。
最小値/最大値:-1.79E+308~+1.79E+308
最大精度は15桁です(整数+小数点以下桁数)。
最後
REAL864ビットのIEEE-754浮動小数点形式で格納されます。
近似値として格納されるため、特定の値を格納して返すと若干の相違が生じる場合があります。
正確な格納および計算が必要な場合は (金額の場合など)、NUMERIC型を使用してください。
最小値/最大値:-1.79E+308~+1.79E+308
最大精度は15桁です(整数+小数点以下桁数)。
最後

日付/時刻型

データ型列のサイズ ( バイト )説明NULL 並び順
DATE8DATEには、年、月および日が含まれます。
YYYY-MM-DDの形式で表示されます。
サポートされる範囲:22500983562558975-11-30 BC~22500983562558974-02-02 AD
先頭
DATETIME8日付および時刻の組み合わせです。
サポートされる範囲:290279-12-22 19:59:05.224194 BC~294277-01-09 04:00:54:775806 AD
先頭
SMALLDATETIME8日付および時刻の組み合わせです。
サポートされる範囲:290279-12-22 19:59:05.224194 BC~294277-01-09 04:00:54:775806 AD
先頭
TIME8時刻を表示します。
サポートされる範囲:00:00:00.00~23:59:60.999999
先頭
TIME WITH TIMEZONE8TIME型を指定したタイムゾーンの時間に変換します。先頭
TIMESTAMP8日付および時刻の組み合わせです。
サポートされる範囲:290279-12-22 19:59:05.224194 BC~294277-01-09 04:00:54:775806 AD
先頭
TIMESTAMP WITH TIMEZONE8TIMESTAMP型を指定したタイムゾーンの時間に変換します。先頭
INTERVAL8期間を格納するデータ型です。先頭
INTERVAL DAY TO SECOND8期間を日と秒で表示します。
サポートされる範囲:-106751991 days 04:00:54.775807~106751991 days 04:00:54.775807
先頭
INTERVAL YEAR TO MONTH8期間を年と月で表示します。
サポートされる範囲:-768e15 yrs~768e15 yrs
先頭

バイナリ型

データ型列のサイズ ( バイト )説明NULL 並び順
BINARY1 ~ 65,000固定長のバイナリ文字列を保持します。
最大長は65,000バイトです。
最後
VARBINARY1 ~ 65,000可変長のバイナリ文字列を保持します。
最大長は65,000バイトです。
最後
LONG VARBINARY1 ~ 32,000,000可変長rawバイトのデータを保持します。最後
BYTEA1 ~ 65,000可変長のバイナリ文字列を保持します。
最大長は65,000バイトです。
最後
RAW1 ~ 65,000可変長のバイナリ文字列を保持します。
最大長は65,000バイトです。
最後

ブーリアン型

データ型列のサイズ ( バイト )説明NULL 並び順
BOOLEAN1TRUE /FALSEまたはNULLを保持します。最後

空間型

データ型列のサイズ ( バイト )説明NULL 並び順
GEOMETRY1 ~ 10,000,000デカルト座標で定義された(x、y)で表される座標情報を保持します。最後
GEOGRAPHY1 ~ 10,000,000緯度と経度の角度を示した座標情報を保持します。最後

UUID型

データ型列のサイズ ( バイト )説明NULL 並び順
UUID16Universally Unique Identifier(UUID)を保持します。先頭

構造体型

データ型列のサイズ ( バイト )説明NULL 並び順
ARRAY1〜32,000,000配列データを表示します。プリミティブ型(ARRAYの中で指定したデータ型)と同じ
SET1〜32,000,000順序付けられていない一意の要素のコレクションを表示します。プリミティブ型(SETの中で指定したデータ型)と同じ

注意点

Verticaは、他のデータベースからの移行を簡単にするため、別名のデータ型がサポートされています。
例えば、INT,INTEGER,INT8,SMALLINT,TINYINT,BIGINTで作成したテーブルは、全てINTで作成されます。別名のデータ型がサポートされることで、移行元のCREATE TABLE文をほぼ改修せずに、利用することができます。
別名のデータ型実際に定義されるデータ型
INT
INTEGER
INT8
SMALLINT
TINYINT
BIGINT
INT
NUMERIC
DECIMAL
NUMBER
MONEY
NUMERIC
DOUBLE PRECISION
FLOAT
FLOAT(n)
FLOAT8
REAL
FLOAT
TIMESTAMP
DATETIME
SMALLDATETIME
TIMESTAMP
VARBINARY
BYTEA
RAW
VARBINARY


 

参考情報

・SQL Data Types
https://www.vertica.com/docs/10.1.x/HTML/Content/Authoring/SQLReferenceManual/DataTypes/SQLDataTypes.htm

検証バージョンについて

この記事の内容はVertica 10.1で確認しています。

更新履歴

2021/08/26 全体の構成変更、「INTERVAL DAY TO SECOND型、INTERVAL YEAR TO MONTH型、ARRAY型、SET型」を追加、Vertica10.1用に修正
2015/06/29 本記事を公開