## 8.6. Boolean Type

PostgreSQL provides the standard SQL type `boolean`; see Table 8.19. The `boolean` type can have several states: “true”, “false”, and a third state, “unknown”, which is represented by the SQL null value.

Table 8.19. Boolean Data Type

Name | Storage Size | Description
--- | --- | ---
`boolean` | 1 byte | state of true or false

Valid literal values for the “true” state are:

`TRUE`
`'t'`
`'true'`
`'y'`
`'yes'`
`'on'`
`'1'`

For the “false” state, the following values can be used:

`FALSE`
`'f'`
`'false'`
`'n'`
`'no'`
`'off'`
`'0'`

Leading or trailing whitespace is ignored, and case does not matter. The key words `TRUE` and `FALSE` are the preferred (SQL-compliant) usage.

Example 8.2 shows that `boolean` values are output using the letters `t` and `f`.

Example 8.2. Using the `boolean` Type

    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