DB_Table のデータ型

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

Description

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

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

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

整数型

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

  • 'smallint' には (-2^15) から +(2^15) までの値、つまり -32778 から 32767 までの値を格納できます。
  • 'integer' には (-2^31) から +(2^31) までの値、つまり -2,147,483,648 から +2,147,483,647 までの値を格納できます。
  • 'bigint' には (-2^63) から +(2^63) までの値、つまり -9,223,372,036,854,775,808 から +9,223,372,036,854,775,807 までの値を格納できます。

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

整数型のカラムの宣言

<?php
var $col = array(
    
// 一意な行 ID
    
'fieldname' => array(
        
'type'    => 'integer'
    
)
);                                                                 
?>

固定小数点型

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

固定小数点型のカラムの定義

<?php
var $col = array(
    
// 一意な行 ID
    
'fieldname' => array(
        
'type'  => 'decimal',
        
'size'  => 5,
        
'scope' => 2
    
),
);                                                                 
?>

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

浮動小数点型

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

  • 'single' は単精度浮動小数点数です。
  • 'double' は倍精度浮動小数点数です。

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

浮動小数点型のカラムの宣言

<?php
var $col = array(
    
// 一意な行 ID
    
'fieldname' => array(
        
'type'  => 'double'
    
),
);                                                                 
?>

論理型

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

論理型のカラムの宣言

<?php
var $col = array(
    
// 一意な行 ID
    
'fieldname' => array(
        
'type'  => 'boolean'
    
)
);                                                                 
?>

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

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

文字列型

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

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

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

可変長文字列型のカラムの宣言

<?php
var $col = array(
    
// 一意な行 ID
    
'fieldname' => array(
        
'type'  => 'varchar',
        
'size'  => 64
    
)
);                                                                 
?>

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

日付型

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

日付型のカラムの宣言

<?php
var $col = array(
    
// 一意な行 ID
    
'fieldname' => array(
        
'type'  => 'date'
    
)
);                                                                 
?>

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

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

時刻型

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

時刻型のカラムの宣言

<?php
var $col = array(
    
// 一意な行 ID
    
'fieldname' => array(
        
'type'  => 'time'
    
)
);                                                                 
?>

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

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

タイムスタンプ型

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

タイムスタンプ型のカラムの宣言

<?php
var $col = array(
    
// 一意な行 ID
    
'fieldname' => array(
        
'type'  => 'timestamp'
    
)
);                                                                 
?>

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

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

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

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

CLOB 型のカラムの宣言

<?php
var $col = array(
    
// 一意な行 ID
    
'fieldname' => array(
        
'type'  => 'clob'
    
)
);                                                                 
?>

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

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

既存のデータベース用のコードの生成 (Previous) MDB (Next)
Last updated: Fri, 24 Oct 2014 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report or add a note.
View this page in:

User Notes:

There are no user contributed notes for this page.