ページの先頭行へ戻る
Symfoware Server V11.0.x SQLリファレンス
Symfoware

2.2 データ型

機能

データの型を定義します。データ型は、表の列のデータの型、ストアドプロシジャ、ファンクションルーチンで扱うデータの型に指定します。

記述形式

一般規則

文字列型

記述形式

一般規則
  • CHARACTERは、文字列型のデータ型です。文字列型の長さは次のようになります。

    • VARYINGが指定されていないとき、文字列の長さは固定長であり、長さで指定した値となります。

    • VARYINGが指定されているとき、文字列の長さは可変長となります。このとき、下限は0、上限は長さで指定した値となります。

  • CHARACTERとCHARは同じ意味です。

  • CHARACTER VARYING、CHAR VARYINGおよびVARCHARは同じ意味です。

各国語文字列型

記述形式

一般規則
  • NATIONAL CHARACTERは、各国語文字列型のデータ型です。各国語文字列型の長さは次のようになります。

    • VARYINGが指定されていないとき、各国語文字列の長さは固定長であり、長さで指定した値となります。

    • VARYINGが指定されているとき、各国語文字列の長さは可変長となります。このとき、下限は0、上限は長さで指定した値となります。

  • NATIONAL CHARACTER、NATIONAL CHARおよびNCHARは同じ意味です。

真数型

記述形式

一般規則
  • 真数型は、符号をもつデータ型です。

  • DECIMALとDECは同じ意味です。

  • INTEGERとINTは同じ意味です。

  • NUMERICおよびDECIMALは、10進の精度と位取りを持ちます。

  • プロシジャルーチン定義にNUMERICまたはDECIMALを指定する場合、精度を指定する必要があります。

  • INTEGERおよびSMALLINTは、2進の精度を持ちます。INTEGERとSMALLINTの精度は31と15です。

概数型

記述形式

一般規則
  • 概数型は、符号をもつデータ型です。

  • REALおよびDOUBLE PRECISIONは、2進の精度を持ちます。REALとDOUBLE PRECISIONの精度は23と52です。FLOATは、指定した精度によってREALまたはDOUBLE PRECISIONが指定されたものとみなします。精度が1~23のときはREALに、24~52のときにはDOUBLE PRECISIONに対応します。

日時型

記述形式

一般規則
  • DATE、TIMEおよびTIMESTAMPは、日時型のデータ型です。

  • DATEは、日付の情報を格納するためのデータ型です。

  • TIMEは、時間の情報を格納するためのデータ型です。

  • TIMESTAMPは、日付と時間の両方の情報を格納するためのデータ型です。

時間隔型

記述形式

構文要素の構成

参照項番
一般規則
  • 時間隔型は、時間隔をもつデータ型です。

  • 日時フィールドには順位があります。その順位は、最上位のものから最下位のものの順に、YEAR、MONTH、DAY、HOUR、MINUTE、SECONDです。

  • 時間隔先行フィールド精度は、1以上9以下の符号なし整数であることが必要です。

  • 時間隔型は、年月クラスと日時クラスに分類されます。各クラスにまたがるような日時フィールドを持つ指定はできません。

  • 開始フィールドは終了フィールドより上位であることが必要です。

  • 非秒日時フィールドは、単一日時フィールドのうち、秒を除いた残りのことです。

  • 年月クラスは、開始フィールドおよび終了フィールドにより指定された年および月からなる連続する日時フィールドを含みます。または、単一日時フィールドにより指定される年または月の単一日時フィールドを含みます。時間隔型の年月クラスを以下に示します。

    表2.12 時間隔型の年月クラス

    開始フィールド

    終了フィールド

    YEAR

    MONTH

    表2.13 時間隔型の年月クラス

    単一日時フィールド

    YEAR

    MONTH

  • 日時クラスは、開始フィールドおよび終了フィールドにより指定された日、時、分および秒からなる連続する任意の日時フィールドを含みます。または、単一日時フィールドにより指定される日、時、分および秒の単一日時フィールドを含みます。時間隔型の日時クラスを以下に示します。

    表2.14 時間隔型の日時クラス

    開始フィールド

    終了フィールド

    DAY

    HOUR
    MINUTE
    SECOND

    HOUR

    MINUTE
    SECOND

    MINUTE

    SECOND

    表2.15 時間隔型の日時クラス

    単一日時フィールド

    DAY

    HOUR

    MINUTE

    SECOND

  • 時間隔型の最初の日時フィールドはn桁の整数です。nは時間隔先行フィールド精度で指定された符号なし整数です。時間隔先行フィールド精度を省略した場合は、以下のようになります。時間隔先行フィールドの省略値を以下に示します。

    表2.16 時間隔先行フィールドの省略値

    開始フィールド

    時間隔先行フィールドの省略値

    YEAR

    2

    MONTH

    2

    DAY

    2

    HOUR

    2

    MINUTE

    2

    SECOND

    2

BLOB

記述形式

一般規則
  • BLOB型は、バイナリ属性のデータを格納することができます。格納する長さは符号なし整数と単位記号の組合せで指定します。単位記号はK(キロバイト)、M(メガバイト)、G(ギガバイト)が指定できます。1キロバイトは1024バイトを示します。

  • BLOBとBINARY LARGE OBJECTは同じ意味です。

  • 長さに2047メガバイトより大きな値を指定した場合は、2047メガバイトとして扱います。

使用例

会社表の定義でのデータ型の使用例です。

CREATE TABLE 会社表(会社番号 SMALLINT NOT NULL,・・・ 真数型
             会社名 NCHAR(10),                 ・・・ 各国語文字列型
             電話番号 CHAR(14),                ・・・ 文字列型
             住所 NCHAR(20),                   ・・・ 各国語文字列型
             創立 DATE,                        ・・・ 日時型
             地図 BLOB(20K)                    ・・・ BLOB型