スケーラブルデータベースサーバ HiRDB Version 8 SQLリファレンス

[目次][索引][前へ][次へ]

1.2.1 データ型

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

 

形式

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

説明
<この項の構成>
(1) 既定義型
(2) ユーザ定義型

(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バイトの半角文字から成る固定長文字列です。
  • 文字集合指定ありの場合
    長さがnバイトの文字集合の文字から成る固定長文字列です。
nは正整数で1≦n≦30,000です。nを省略すると,1が仮定されます。
文字集合指定は文字データに対する属性を指定します。詳細は「1.3 文字集合」を参照してください。
VARCHAR(n) 〔CHARACTER SET 文字集合指定〕又は
CHAR〔ACTER〕VARYING(n) 〔CHARACTER SET 文字集合指定〕
可変長文字列
(最大長nバイト)

  • 文字集合指定なしの場合
    最大長がnバイトの半角文字から成る可変長文字列です。
  • 文字集合指定ありの場合
    長さがnバイトの文字集合の文字から成る可変長文字列です。
nは正整数で1≦n≦32,000です。実長は0以上です。
文字集合指定は文字データに対する属性を指定します。詳細は「1.3 文字集合」を参照してください。
各国文字データ※6※9 NCHAR〔(n)〕又は
NATIONAL CHAR〔ACTER〕〔(n)〕
固定長各国文字列
(長さn文字)
長さn文字(2nバイト)の全角文字から成る固定長各国文字列です。
nは正整数で1≦n≦15,000です。nを省略すると,1が仮定されます。
NVARCHAR(n)又は
NATIONAL CHAR〔ACTER〕VARYING(n)又は
NCHAR VARYING(n)
可変長各国文字列
(最大長n文字)
最大長がn文字(2nバイト)の全角文字から成る可変長各国文字列です。
nは正整数で1≦n≦16,000です。実長は0以上です。
混在文字データ※6 MCHAR〔(n)〕 固定長混在文字列
(長さnバイト)
長さnバイトの半角文字と全角文字の混在する固定長混在文字列です。
nは正整数で1≦n≦30,000です。nを省略すると,1が仮定されます。
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〜59(秒)11
時,分,秒の三つの領域を持つ時刻のデータ型です。
時刻印データ TIMESTAMP〔(p)〕 時刻印
(7〜10バイトの符号なしパック形式YYYYMMDDhhmmss〔nn…n〕)
YYYY:0001〜9999(年)
MM:01〜12(月)
DD:01〜該当年月の最終日(日)
hh:00〜23(時)
mm:00〜59(分)
ss:00〜59(秒)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 Version 8 UAP開発ガイド」を参照してください。

注2
使用できる半角文字,及び全角文字の文字コードについては,「表1-1 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型,日間隔型,及び時間隔型の符号部については,「1.2.4 DECIMAL型使用上の注意事項」を参照してください。

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

注※10
  • pdntenvコマンド(UNIX版の場合はpdsetupコマンド)で文字コード種別にsjis以外を指定した場合,文字集合指定にEBCDIKを指定した文字データは使用できません。
  • pdntenvコマンド(UNIX版の場合はpdsetupコマンド)で文字コード種別にutf-8以外を指定した場合,文字集合指定にUTF16を指定した文字データは使用できません。
    文字集合指定にUTF16を指定した場合,nは2の倍数にしてください。

注※11
pd_leap_secondオペランドでうるう秒を指定できるようにした場合,ssの範囲は00〜61(秒)となります。pd_leap_secondオペランドについては,マニュアル「HiRDB Version 8 システム定義」を参照してください。

(2) ユーザ定義型

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

表1-4 ユーザ定義型

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

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