バージョンごとのドキュメント一覧

8.6. 論理値データ型 #

<title>Boolean Type</title>

<productname>PostgreSQL</productname> provides the standard <acronym>SQL</acronym> type <type>boolean</type>; see <xref linkend="datatype-boolean-table"/>. The <type>boolean</type> type can have several states: <quote>true</quote>, <quote>false</quote>, and a third state, <quote>unknown</quote>, which is represented by the <acronym>SQL</acronym> null value. PostgreSQLでは、標準SQLboolean型が提供されています。 表 8.19を参照してください。 boolean型はいくつかの状態を取ることができます。 もしくは、そして第3の状態はSQLではNULL値で表現される不明の状態です。

表8.19 論理値データ型

<title>Boolean Data Type</title>
名前格納サイズ説明
boolean1バイト真または偽の状態

Boolean constants can be represented in SQL queries by the SQL key words <literal>TRUE</literal>, <literal>FALSE</literal>, and <literal>NULL</literal>. 論理定数はSQL問い合わせの中で、SQLキーワードのTRUEFALSEおよびNULLによって表現できます。

The datatype input function for type <type>boolean</type> accepts these string representations for the <quote>true</quote> state: booleanのデータ型を入力する関数には次の文字列表現をの状態として使うことができます。

true
yes
on
1

and these representations for the <quote>false</quote> state: の状態には以下の表現が使用できます。

false
no
off
0

Unique prefixes of these strings are also accepted, for example <literal>t</literal> or <literal>n</literal>. Leading or trailing whitespace is ignored, and case does not matter. tnなど、これらの文字列固有の接頭辞も利用できます。 先頭または末尾の空白文字は無視され、大文字小文字の区別は関係ありません。

The datatype output function for type <type>boolean</type> always emits either <literal>t</literal> or <literal>f</literal>, as shown in <xref linkend="datatype-boolean-example"/>. booleanのデータ型を出力する関数は例 8.2にあるように、常にtfを出力します。

例8.2 boolean型の使用

<title>Using the <type>boolean</type> Type</title>
CREATE TABLE test1 (a boolean, b text);
INSERT INTO test1 VALUES (TRUE, 'sic est');
INSERT INTO test1 VALUES (FALSE, 'non est');
SELECT * FROM test1;
 a |    b
---+---------
 t | sic est
 f | non est

SELECT * FROM test1 WHERE a;
 a |    b
---+---------
 t | sic est

The key words <literal>TRUE</literal> and <literal>FALSE</literal> are the preferred (<acronym>SQL</acronym>-compliant) method for writing Boolean constants in SQL queries. But you can also use the string representations by following the generic string-literal constant syntax described in <xref linkend="sql-syntax-constants-generic"/>, for example <literal>'yes'::boolean</literal>. キーワードであるTRUEFALSEはSQLクエリの中で論理定数の記述として好ましい(SQL準拠)方式です。 しかし、 4.1.2.7のリンクで記述されている、以下のような一般的な文字列リテラル定数の構文に従って'yes'::booleanというような文字表現することもできます。

Note that the parser automatically understands that <literal>TRUE</literal> and <literal>FALSE</literal> are of type <type>boolean</type>, but this is not so for <literal>NULL</literal> because that can have any type. So in some contexts you might have to cast <literal>NULL</literal> to <type>boolean</type> explicitly, for example <literal>NULL::boolean</literal>. Conversely, the cast can be omitted from a string-literal Boolean value in contexts where the parser can deduce that the literal must be of type <type>boolean</type>. パーサーは自動的にTRUEFALSEboolean型と理解しますが、NULLは他のすべての型に存在するため、boolean型と理解しない点に気をつけてください。 このため、コンテキストによってはNULL::booleanというように、NULLbooleanに明確にキャストする必要があります。 逆に、解析でリテラルがboolean型でなければならないと推論できるコンテキストでは、文字列リテラルブール値のキャストは省略できます。