Hitachi

ノンストップデータベース HiRDB Version 10 SQLリファレンス


1.2.1 データ型

データ型は次の二つに分けられます。

形式

データ型::={既定義型|ユーザ定義型}

説明

〈この項の構成〉

(1) 既定義型

既定義型を次の表に示します。

表1‒3 既定義型

分 類

データ型※1

データ形式

説 明

数データ

INT〔EGER〕

整数

(4バイトの2進形式)

値の範囲が−2147483648〜2147483647の整数です。

SMALLINT

整数

(2バイトの2進形式)

値の範囲が−32768〜32767の整数です。

〔LARGE〕

DEC〔IMAL〕

〔(m〔,n〕)〕

又は

NUMERIC

〔(m〔,n〕)〕

固定小数点数

(↑(m+1)/2↑バイトのパック10進形式)※8

精度(全体のけた数)がmけたで,位取り(小数点以下のけた数)がnけたの固定小数点数です。

m,nは正整数で,1≦m≦38,0≦n≦38,n≦mです。

mを省略すると,15が仮定されます。

nを省略すると,0が仮定されます。

FLOAT又は

DOUBLE PRECISION

倍精度浮動小数点数

(8バイト)

値の範囲が約±4.9×10-324〜±1.7×10308の倍精度浮動小数点数です。※4

SMALLFLT又は

REAL

単精度浮動小数点数

(4バイト)

値の範囲が約±1.4×10-45〜±3.4×1038の単精度浮動小数点数です。※4

文字データ※10

CHAR〔ACTER〕

〔(n)〕 〔CHARACTER SET 文字集合指定〕

固定長文字列

(長さnバイト)

長さがnバイトの固定長文字列です。

  • 文字集合指定なしの場合

    1バイト文字から成る固定長文字列です。

  • 文字集合指定ありの場合

    文字集合の任意の文字から成る固定長文字列です。

nは正整数で1≦n≦30,000です。nを省略すると,1が仮定されます。

文字集合指定は文字データに対する属性を指定します。詳細は「文字集合」を参照してください。

〔LONG〕

VARCHAR(n)〔CHARACTER SET 文字集合指定〕又は

CHAR〔ACTER〕VARYING(n)〔CHARACTER SET 文字集合指定〕

可変長文字列

(最大長nバイト)

最大長がnバイトの可変長文字列です。

  • 文字集合指定なしの場合

    1バイト文字から成る可変長文字列です。

  • 文字集合指定ありの場合

    文字集合の任意の文字から成る可変長文字列です。

nは正整数で1≦n≦32,000です。実長は0以上です。

文字集合指定は文字データに対する属性を指定します。詳細は「文字集合」を参照してください。

各国文字データ※6※9

NCHAR〔(n)〕又は

NATIONAL CHAR〔ACTER〕〔(n)〕

固定長各国文字列

(長さn文字)

長さn文字(2nバイト)の2バイト文字から成る固定長各国文字列です。

nは正整数で1≦n≦15,000です。nを省略すると,1が仮定されます。

〔LONG〕

NVARCHAR(n)又は

NATIONAL CHAR〔ACTER〕VARYING(n)又は

NCHAR VARYING(n)

可変長各国文字列

(最大長n文字)

最大長がn文字(2nバイト)の2バイト文字から成る可変長各国文字列です。

nは正整数で1≦n≦16,000です。実長は0以上です。

混在文字データ※6

MCHAR〔(n)〕

固定長混在文字列

(長さnバイト)

長さnバイトの半角文字と全角文字の混在する固定長混在文字列です。

nは正整数で1≦n≦30,000です。nを省略すると,1が仮定されます。

〔LONG〕

MVARCHAR(n)

可変長混在文字列

(最大長nバイト)

最大長nバイトの半角文字と全角文字の混在する可変長混在文字列です。

nは正整数で1≦n≦32,000です。実長は0以上です。

日付データ

DATE

日付

(4バイト符号なしパック形式YYYYMMDD)

YYYY:0001〜9999(年)

MM:01〜12(月)

DD:01〜該当年月の最終日(日)

年,月,日の三つの領域を持つ日付のデータ型です。

時刻データ

TIME

時刻

(3バイト符号なしパック形式hhmmss)

hh:00〜23(時)

mm:00〜59(分)

ss:00〜61(秒)※11

時,分,秒の三つの領域を持つ時刻のデータ型です。

時刻印データ

TIMESTAMP〔(p)〕

時刻印

(7〜10バイトの符号なしパック形式YYYYMMDDhhmmss〔nn…n〕)

YYYY:0001〜9999(年)

MM:01〜12(月)

DD:01〜該当年月の最終日(日)

hh:00〜23(時)

mm:00〜59(分)

ss:00〜61(秒)※11

nn…n:pけたの小数秒(n:0〜9)

年,月,日,時,分,秒の六つの領域を持つ時刻印のデータ型です。

pは整数で,p=0,2,4,又は6です。省略した場合は,p=0が仮定されます。

日間隔データ

INTERVAL YEAR TO DAY

日間隔

(5バイトパック形式 0YYYYMMDDs)

YYYY:0000〜9999(か年)

MM:00〜99※2(か月)

DD:00〜99(か日)

s:符号(正:C,F 負:D)※8

日付データ型が,ある一時点を表すのに対して,日間隔データ型は,日付と日付の間隔を表すデータ型です。

日間隔の範囲は,−9999か年11か月99か日間〜9999か年11か月99か日間です。

時間隔データ

INTERVAL HOUR TO SECOND

時間隔

(4バイトパック形式 0hhmmsst)

hh:00〜99(時間)

mm:00〜99※3(分)

ss:00〜99※3(秒)

t:符号(正:C,F 負:D)※8

時刻データ型が,ある一時点を表すのに対して,時間隔データ型は,時刻と時刻の間隔を表すデータ型です。

時間隔の範囲は−99時間59分59秒〜99時間59分59秒です。

長大データ

BLOB〔(n〔{K|M|G}〕)〕

又は

BINARY LARGE OBJECT〔(n〔{K|M|G}〕)〕

バイナリデータ列

(最大長nバイト)

K:キロバイト単位

M:メガバイト単位

G:ギガバイト単位

最大長nバイトのバイナリデータ列です。

nを省略すると,2,147,483,647バイトが仮定されます。実長は0以上です。単位としてK,M,及びGが指定できます。※5

単位(K,M,又はG)を省略すると,バイト単位となります。

バイナリデータ

BINARY(n)

バイナリデータ列

(最大長nバイト)

最大長nバイトのバイナリデータ列です。

nは省略できません。実長は0以上です。nは正整数で,1≦n≦2,147,483,647バイトです。

論理データ

BOOLEAN※7

論理値(4バイト)

論理値として真(TRUE),偽(FALSE),否定(UNKNOWN)をとります。

注1

文字データ,及び混在文字データの比較,及びデータ変換時,埋字の空白として使用する半角文字を次に示します。

データ型

文字集合指定

空白文字コード

文字データ

省略

X’20’

EBCDIK

X’40’

UTF16

X’0020’

混在文字データ

X’20’

各国文字データ

使用している文字コードに依存

注※

?パラメタを介して文字コードがUTF-16のデータを操作する場合,文字集合名記述領域に文字集合名を指定してください。

また,プリプロセスオプション,及び埋込み変数の定義に,文字コードがUTF-16のデータを操作できるように指定することで,埋込み変数を介して文字コードがUTF-16のデータを操作できるようになります。

文字集合名に指定できる値を示します。

  • UTF16

  • UTF-16BE

  • UTF-16LE

文字集合名を指定した場合の空白文字コードを次に示します。

  • UTF16,及びUTF-16BEの場合

    X’0020’

  • UTF-16LEの場合

    X’2000’

UTF-16LE及びUTF-16BE(文字集合名記述領域のSQLCSNに設定できる文字集合情報)については,マニュアル「HiRDB UAP開発ガイド」を参照してください。

注2

使用できる半角文字,及び全角文字の文字コードについては,表「SQLで使用できる文字」の注を参照してください。

注※1

各データ型はこれ以降,それぞれ代表的なデータ型を使用して示します。

注※2

12以上を指定した場合,年に繰り上げます。

注※3

mm,ssに60以上を指定した場合,それぞれ時,分に繰り上げます。

注※4

浮動小数点数の値の範囲は,ハードウェア表現に従います。

注※5

最大長を単位指定する場合の,指定範囲と実際の最大長を次に示します。

単 位

nの指定範囲

実際の最大長(バイト)

K

1≦n≦2097152

n×1024

M

1≦n≦2048

n×1048576

G

1≦n≦2

n×1073741824

ただし,実際の最大長の計算結果が2147483648の場合は,2147483647になります。

注※6

pdsetupコマンドで文字コード種別にlang-cを指定した場合,各国文字データ,及び混在文字データは定義できません(UNIX版限定)。

注※7

BOOLEANは,関数の戻り値のデータ型としてだけ使用できます。列,SQL変数,又はSQLパラメタのデータ型としては使用できません。

注※8

DECIMAL型,日間隔型,及び時間隔型の符号部については,「DECIMAL型使用上の注意事項」を参照してください。

注※9

pdntenvコマンド(UNIX版の場合はpdsetupコマンド)で文字コード種別にutf-8,utf-8_ivs,又はchinese-gb18030を指定した場合,各国文字データは定義できません。

注※10
  • pdntenvコマンド(UNIX版の場合はpdsetupコマンド)で文字コード種別にsjis以外を指定した場合,文字集合指定にEBCDIKを指定した文字データは使用できません。

  • pdntenvコマンド(UNIX版の場合はpdsetupコマンド)で文字コード種別にutf-8,utf-8_ivs以外を指定した場合,文字集合指定にUTF16を指定した文字データは使用できません。

    文字集合指定にUTF16を指定した場合,nは2の倍数にしてください。

注※11

pd_leap_secondがNの場合,ssの範囲は00〜59(秒)となります。pd_leap_secondオペランドについては,マニュアル「HiRDB システム定義」を参照してください。

(2) ユーザ定義型

ユーザ定義型を次の表に示します。

表1‒4 ユーザ定義型

データ型

データ形式

説明

抽象データ型

CREATE TYPEで定義するデータ型を示します。データ型中に属性定義,ルーチンなどを定義できます。

(凡例)−:該当しません。