cvs: peardoc /ja/package/database/db-table intro-datatypes.xml
[email protected] ("TAKAGI Masahiro")
| Newsgroups | php.pear.doc |
|---|---|
| Message-ID | <cvstakagi1190596850@cvsserver> |
takagi Mon Sep 24 01:20:50 2007 UTC
Added files:
/peardoc/ja/package/database/db-table intro-datatypes.xml
Log:
added Japanese translation.
takagi-20070924012050.txt
(text/plain, 12.4 KB)
http://cvs.php.net/viewvc.cgi/peardoc/ja/package/database/db-table/intro-datatypes.xml?view=markup&rev=1.1
Index: peardoc/ja/package/database/db-table/intro-datatypes.xml
+++ peardoc/ja/package/database/db-table/intro-datatypes.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision: 1.1 $ -->
<!-- EN-Revision: 1.2 Maintainer: takagi Status: ready -->
<refentry id="package.database.db-table.intro-datatypes">
<refnamediv>
<refname>DB_Table のデータ型</refname>
<refpurpose>
DB_Table のカラム定義で使用する抽象データ型
</refpurpose>
</refnamediv>
<refsect1 id="package.database.db-table.intro-datatypes.desc">
&title.desc;
<para>
DB_Table でサポートするデータ型は、次のとおりです。
<itemizedlist>
<listitem>
<simpara>
2 バイト、4 バイトあるいは 8 バイトの
<link linkend="package.database.db-table.intro-datatypes.integer">
整数型</link>
('smallint'、'integer' および 'bigint')
</simpara>
</listitem>
<listitem>
<simpara>
<link linkend="package.database.db-table.intro-datatypes.decimal">
固定小数点型</link>
('decimal')
</simpara>
</listitem>
<listitem>
<simpara>
単精度あるいは倍精度の
<link linkend="package.database.db-table.intro-datatypes.float">
浮動小数点型</link>
('float' および 'double')
</simpara>
</listitem>
<listitem>
<simpara>
true/false のいずれかの値をとる
<link linkend="package.database.db-table.intro-datatypes.boolean">
論理型</link>
('boolean')
</simpara>
</listitem>
<listitem>
<simpara>
固定長あるいは可変長の
<link linkend="package.database.db-table.intro-datatypes.string">
文字列型</link>
('char' および 'varchar')
</simpara>
</listitem>
<listitem>
<simpara>
ISO "yyyy-mm-dd" 形式の
<link linkend="package.database.db-table.intro-datatypes.date">
日付型</link>
('date')
</simpara>
</listitem>
<listitem>
<simpara>
ISO "hh:ii:ss" 形式の
<link linkend="package.database.db-table.intro-datatypes.time">
時刻型</link>
('time')
</simpara>
</listitem>
<listitem>
<simpara>
ISO "yyyy-mm-dd hh:ii:ss" 形式の
<link linkend="package.database.db-table.intro-datatypes.timestamp">
タイムスタンプ型</link>
('timestamp')
</simpara>
</listitem>
<listitem>
<simpara>
テキストや ASCII データを保持する
<link linkend="package.database.db-table.intro-datatypes.clob">
キャラクタラージオブジェクト (CLOB)</link>
('clob')
</simpara>
</listitem>
</itemizedlist>
</para>
<para>
DB_Table がデータ型を抽象化しているので、
使用するデータベースにかかわらず同じ方式でデータを保存することができます。
場合によっては (特に日付や時刻、タイムスタンプなどでは)
データベース固有のフォーマットをまったく無視して
データを固定長の文字列で格納することもあります。
</para>
<para>
DB_Table はバイナリラージオブジェクト (BLOB) をサポートしていません。
しかし、キャラクタラージオブジェクト (CLOB) には対応しています。
</para>
</refsect1>
<refsect1 id="package.database.db-table.intro-datatypes.integer">
<title>整数型</title>
<para>
整数型のカラムには 3 種類のサイズがあります。
<itemizedlist>
<listitem>
<simpara>
'smallint' には (-2^15) から +(2^15) までの値、つまり
-32778 から 32767 までの値を格納できます。
</simpara>
</listitem>
<listitem>
<simpara>
'integer' には (-2^31) から +(2^31) までの値、つまり
-2,147,483,648 から +2,147,483,647 までの値を格納できます。
</simpara>
</listitem>
<listitem>
<simpara>
'bigint' には (-2^63) から +(2^63) までの値、つまり
-9,223,372,036,854,775,808 から +9,223,372,036,854,775,807
までの値を格納できます。
</simpara>
</listitem>
</itemizedlist>
$col の定義で必要なのは、カラムの型を指定するだけです。
サイズやスコープの指定は不要です。
</para>
<example>
<title>整数型のカラムの宣言</title>
<programlisting role="php">
<![CDATA[
<?php
var $col = array(
// 一意な行 ID
'fieldname' => array(
'type' => 'integer'
)
);
?>
]]>
</programlisting>
</example>
</refsect1>
<refsect1 id="package.database.db-table.intro-datatypes.decimal">
<title>固定小数点型</title>
<para>
固定小数点のカラムを DB_Table で定義するには 'decimal' データ型を使用して
'size' (桁数) と 'scope' (小数点の位置) を指定します。
たとえば、小数点以下 2 桁までを保持する 5 桁の数値を定義するには次のようにします。
</para>
<example>
<title>固定小数点型のカラムの定義</title>
<para>
</para>
<programlisting role="php">
<![CDATA[
<?php
var $col = array(
// 一意な行 ID
'fieldname' => array(
'type' => 'decimal',
'size' => 5,
'scope' => 2
),
);
?>
]]>
</programlisting>
</example>
<para>
上の例で指定したカラムは、標準 SQL では 5 桁の数値 (そのうち 2 桁が小数点以下)
を保持するものとみなされます。したがって、この場合、
このカラムに格納できる値は -999.99 から 999.99 までとなります。
DB_Table は、使用する RDBMS が何であるかにかかわらずこの方式を適用します。
</para>
</refsect1>
<refsect1 id="package.database.db-table.intro-datatypes.float">
<title>浮動小数点型</title>
<para>
浮動小数点型のカラムを DB_Table で定義するには、'single' あるいは
'double' データ型を使用します。
<itemizedlist>
<listitem>
<simpara>
'single' は単精度浮動小数点数です。
</simpara>
</listitem>
<listitem>
<simpara>
'double' は倍精度浮動小数点数です。
</simpara>
</listitem>
</itemizedlist>
指定する必要があるのはカラムの型だけであり、サイズやスコープの指定は不要です。
</para>
<example>
<title>浮動小数点型のカラムの宣言</title>
<para>
</para>
<programlisting role="php">
<![CDATA[
<?php
var $col = array(
// 一意な行 ID
'fieldname' => array(
'type' => 'double'
),
);
?>
]]>
</programlisting>
</example>
</refsect1>
<refsect1 id="package.database.db-table.intro-datatypes.boolean">
<title>論理型</title>
<para>
論理値は true/false (1 あるいは 0) の値をとります。
指定する必要があるのはカラムの型だけであり、サイズやスコープの指定は不要です。
</para>
<example>
<title>論理型のカラムの宣言</title>
<programlisting role="php">
<![CDATA[
<?php
var $col = array(
// 一意な行 ID
'fieldname' => array(
'type' => 'boolean'
)
);
?>
]]>
</programlisting>
</example>
<para>
論理型の値は、サイズ 1、スコープ 0 の固定小数点数値として保存されます。
</para>
<para>
そのカラムが必須ではないときは、第三の値として NULL 値が保存される可能性があります。
この場合、論理型の値は 2 通りではなく 3 通り
(つまり 0|1 ではなく NULL|0|1) となります。
</para>
</refsect1>
<refsect1 id="package.database.db-table.intro-datatypes.string">
<title>文字列型</title>
<para>
固定長の文字列型を定義するには 'char' データ型を使用し、
文字列のサイズを指定します。
</para>
<para>
可変長の文字列型を定義するには、'varchar' データ型を使用し、
文字列のカラムの最大サイズを指定します。
</para>
<para>
たとえば、64 文字の可変長文字列を定義するには次のようにします。
<example>
<title>可変長文字列型のカラムの宣言</title>
<programlisting role="php">
<![CDATA[
<?php
var $col = array(
// 一意な行 ID
'fieldname' => array(
'type' => 'varchar',
'size' => 64
)
);
?>
]]>
</programlisting>
</example>
</para>
<para>
'size' 要素は必須ですが、スコープは不要です。
サイズの最大値は 255 文字となります。
</para>
</refsect1>
<refsect1 id="package.database.db-table.intro-datatypes.date">
<title>日付型</title>
<para>
ISO 標準の日付型カラムを定義するには 'date' データ型を使用します。
</para>
<example>
<title>日付型のカラムの宣言</title>
<programlisting role="php">
<![CDATA[
<?php
var $col = array(
// 一意な行 ID
'fieldname' => array(
'type' => 'date'
)
);
?>
]]>
</programlisting>
</example>
<para>
指定する必要があるのはカラムの型だけであり、サイズやスコープの指定は不要です。
</para>
<para>
'date' の値は常に 10 文字の文字列で格納されます。
そのフォーマットは "yyyy-mm-dd" です。
</para>
</refsect1>
<refsect1 id="package.database.db-table.intro-datatypes.time">
<title>時刻型</title>
<para>
ISO 標準の時刻型 (時・分・秒) を定義するには
'time' データ型を使用します。
</para>
<example>
<title>時刻型のカラムの宣言</title>
<programlisting role="php">
<![CDATA[
<?php
var $col = array(
// 一意な行 ID
'fieldname' => array(
'type' => 'time'
)
);
?>
]]>
</programlisting>
</example>
<para>
指定する必要があるのはカラムの型だけであり、サイズやスコープの指定は不要です。
</para>
<para>
'time' の値は常に 8 文字の文字列で格納されます。
そのフォーマットは "hh:ii:ss" です。
</para>
</refsect1>
<refsect1 id="package.database.db-table.intro-datatypes.timestamp">
<title>タイムスタンプ型</title>
<para>
ISO 標準の日付・時刻型のカラムを定義するには 'timestamp'
データ型を使用します。
</para>
<example>
<title>タイムスタンプ型のカラムの宣言</title>
<programlisting role="php">
<![CDATA[
<?php
var $col = array(
// 一意な行 ID
'fieldname' => array(
'type' => 'timestamp'
)
);
?>
]]>
</programlisting>
</example>
<para>
指定する必要があるのはカラムの型だけであり、サイズやスコープの指定は不要です。
</para>
<para>
'timestamp' の値は常に 19 文字の文字列で格納されます。
そのフォーマットは "yyyy-mm-dd hh:ii:ss" (24 時間制) です。
</para>
<para>
注意: Unix のタイムスタンプを保存する場合は 'integer' を使用しましょう。
Unix のタイムスタンプは 4 バイトの整数値であり、
これは DB_Table の 'integer' データ型と完全に一致します。
</para>
</refsect1>
<refsect1 id="package.database.db-table.intro-datatypes.clob">
<title>キャラクタラージオブジェクト (CLOB)</title>
<example>
<title>CLOB 型のカラムの宣言</title>
<programlisting role="php">
<![CDATA[
<?php
var $col = array(
// 一意な行 ID
'fieldname' => array(
'type' => 'clob'
)
);
?>
]]>
</programlisting>
</example>
<para>
指定する必要があるのはカラムの型だけであり、サイズやスコープの指定は不要です。
</para>
<para>
'clob' の値の保存形式は、巨大なデータ用のネイティブなテキスト型
(<emphasis>例:</emphasis> LONGTEXT) あるいはネイティブな CLOB 型となります。
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"../../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->