DB_Table のデータ型

DB_Table のデータ型 --  DB_Table のカラム定義で使用する抽象データ型

説明

DB_Table でサポートするデータ型は、次のとおりです。

DB_Table がデータ型を抽象化しているので、 使用するデータベースにかかわらず同じ方式でデータを保存することができます。 場合によっては (特に日付や時刻、タイムスタンプなどでは) データベース固有のフォーマットをまったく無視して データを固定長の文字列で格納することもあります。

DB_Table はバイナリラージオブジェクト (BLOB) をサポートしていません。 しかし、キャラクタラージオブジェクト (CLOB) には対応しています。

整数型

整数型のカラムには 3 種類のサイズがあります。

$col の定義で必要なのは、カラムの型を指定するだけです。 サイズやスコープの指定は不要です。

固定小数点型

固定小数点のカラムを DB_Table で定義するには 'decimal' データ型を使用して 'size' (桁数) と 'scope' (小数点の位置) を指定します。 たとえば、小数点以下 2 桁までを保持する 5 桁の数値を定義するには次のようにします。

上の例で指定したカラムは、標準 SQL では 5 桁の数値 (そのうち 2 桁が小数点以下) を保持するものとみなされます。したがって、この場合、 このカラムに格納できる値は -999.99 から 999.99 までとなります。 DB_Table は、使用する RDBMS が何であるかにかかわらずこの方式を適用します。

浮動小数点型

浮動小数点型のカラムを DB_Table で定義するには、'single' あるいは 'double' データ型を使用します。

指定する必要があるのはカラムの型だけであり、サイズやスコープの指定は不要です。

論理型

論理値は true/false (1 あるいは 0) の値をとります。 指定する必要があるのはカラムの型だけであり、サイズやスコープの指定は不要です。

論理型の値は、サイズ 1、スコープ 0 の固定小数点数値として保存されます。

そのカラムが必須ではないときは、第三の値として NULL 値が保存される可能性があります。 この場合、論理型の値は 2 通りではなく 3 通り (つまり 0|1 ではなく NULL|0|1) となります。

文字列型

固定長の文字列型を定義するには 'char' データ型を使用し、 文字列のサイズを指定します。

可変長の文字列型を定義するには、'varchar' データ型を使用し、 文字列のカラムの最大サイズを指定します。

たとえば、64 文字の可変長文字列を定義するには次のようにします。

'size' 要素は必須ですが、スコープは不要です。 サイズの最大値は 255 文字となります。

日付型

ISO 標準の日付型カラムを定義するには 'date' データ型を使用します。

指定する必要があるのはカラムの型だけであり、サイズやスコープの指定は不要です。

'date' の値は常に 10 文字の文字列で格納されます。 そのフォーマットは "yyyy-mm-dd" です。

時刻型

ISO 標準の時刻型 (時・分・秒) を定義するには 'time' データ型を使用します。

指定する必要があるのはカラムの型だけであり、サイズやスコープの指定は不要です。

'time' の値は常に 8 文字の文字列で格納されます。 そのフォーマットは "hh:ii:ss" です。

タイムスタンプ型

ISO 標準の日付・時刻型のカラムを定義するには 'timestamp' データ型を使用します。

指定する必要があるのはカラムの型だけであり、サイズやスコープの指定は不要です。

'timestamp' の値は常に 19 文字の文字列で格納されます。 そのフォーマットは "yyyy-mm-dd hh:ii:ss" (24 時間制) です。

注意: Unix のタイムスタンプを保存する場合は 'integer' を使用しましょう。 Unix のタイムスタンプは 4 バイトの整数値であり、 これは DB_Table の 'integer' データ型と完全に一致します。

キャラクタラージオブジェクト (CLOB)

指定する必要があるのはカラムの型だけであり、サイズやスコープの指定は不要です。

'clob' の値の保存形式は、巨大なデータ用のネイティブなテキスト型 (例: LONGTEXT) あるいはネイティブな CLOB 型となります。