第8章 データ型

目次

8.1. 数値データ型
8.1.1. 整数データ型
8.1.2. 任意の精度を持つ数
8.1.3. 浮動小数点データ型
8.1.4. 連番型
8.2. 通貨型
8.3. 文字型
8.4. バイナリ列データ型
8.4.1. byteaのhex書式
8.4.2. byteaのエスケープ書式
8.5. 日付/時刻データ型
8.5.1. 日付/時刻の入力
8.5.2. 日付/時刻の出力
8.5.3. 時間帯
8.5.4. 時間間隔の入力
8.5.5. 時間間隔の出力
8.6. 論理値データ型
8.7. 列挙型
8.7.1. 列挙型の宣言
8.7.2. 順序
8.7.3. 型の安全性
8.7.4. 実装の詳細
8.8. 幾何データ型
8.8.1. 座標点
8.8.2. 直線
8.8.3. 線分
8.8.4. 矩形
8.8.5. 経路
8.8.6. 多角形(ポリゴン)
8.8.7. 円
8.9. ネットワークアドレス型
8.9.1. inet
8.9.2. cidr
8.9.3. inetcidrデータ型の違い
8.9.4. macaddr
8.10. ビット列データ型
8.11. テキスト検索に関する型
8.11.1. tsvector
8.11.2. tsquery
8.12. UUID
8.13. XML
8.13.1. XML値の作成
8.13.2. 符号化方式の取扱い
8.13.3. XML値へのアクセス
8.14. JSONデータ型
8.14.1. JSONの入出力構文
8.14.2. 効果的なJSONドキュメントの設計
8.14.3. jsonb型用包含演算子と存在演算子
8.14.4. jsonb インデックス
8.15. 配列
8.15.1. 配列型の宣言
8.15.2. 配列の値の入力
8.15.3. 配列へのアクセス
8.15.4. 配列の変更
8.15.5. 配列内の検索
8.15.6. 配列の入出力構文
8.16. 複合型
8.16.1. 複合型の宣言
8.16.2. 複合型の値の構成
8.16.3. 複合型へのアクセス
8.16.4. 複合型の変更
8.16.5. 問い合わせでの複合型の使用
8.16.6. 複合型の入出力構文
8.17. 範囲型
8.17.1. 組み込みの範囲型
8.17.2. 例
8.17.3. 閉じた境界と開いた境界
8.17.4. 無限の(境界のない)範囲
8.17.5. 範囲の入出力
8.17.6. 範囲の生成
8.17.7. 離散的な範囲型
8.17.8. 新しい範囲型の定義
8.17.9. インデックス
8.17.10. 範囲の制約
8.18. オブジェクト識別子データ型
8.19. pg_lsn 型
8.20. 疑似データ型
<title>Data Types</title>

<productname>PostgreSQL</productname> has a rich set of native data types available to users. Users can add new types to <productname>PostgreSQL</productname> using the <xref linkend="sql-createtype"> command. PostgreSQLにはユーザが使用可能な豊富なデータ型が始めから備わっています。 CREATE TYPEコマンドでPostgreSQLに対し新しいデータ型を追加できます。

<xref linkend="datatype-table"> shows all the built-in general-purpose data types. Most of the alternative names listed in the <quote>Aliases</quote> column are the names used internally by <productname>PostgreSQL</productname> for historical reasons. In addition, some internally used or deprecated types are available, but are not listed here. 表8.1「データ型」に組み込みの汎用データ型をすべて示します。 別名欄に列挙された代替名称のほとんどは、歴史的な理由によりPostgreSQLの内部で使用されている名前です。 他にも、内部で使用されるデータ型、削除予定のデータ型もありますが、ここにはリストされていません。

表8.1 データ型

<title>Data Types</title>
名称別名説明
bigintint88バイト符号付き整数
bigserialserial8自動増分8バイト整数
bit [ (n) ] 固定長ビット列
bit varying [ (n) ]varbit可変長ビット列
booleanbool論理値(真/偽)
box 平面上の矩形
bytea バイナリデータ(バイトの配列(byte array)
character [ (n) ]char [ (n) ]固定長文字列
character varying [ (n) ]varchar [ (n) ]可変長文字列
cidr IPv4もしくはIPv6ネットワークアドレス
circle 平面上の円
date 暦の日付(年月日)
double precisionfloat8倍精度浮動小数点(8バイト)
inet IPv4もしくはIPv6ホストアドレス
integerint, int44バイト符号付き整数
interval [ fields ] [ (p) ] 時間間隔
json テキストのJSONデータ
jsonb バイナリ JSON データ, 展開型
line 平面上の無限直線
lseg 平面上の線分
macaddr MAC(メディアアクセスコントロール)アドレス
money 貨幣金額
numeric [ (p, s) ]decimal [ (p, s) ]精度の選択可能な高精度数値
path 平面上の幾何学的経路
pg_lsn PostgreSQLログ順序番号
point 平面上の幾何学的点
polygon 平面上の閉じた幾何学的経路
realfloat4単精度浮動小数点(4バイト)
smallintint22バイト符号付き整数
smallserialserial2自動増分2バイト整数
serialserial4自動増分4バイト整数
text 可変長文字列
time [ (p) ] [ without time zone ] 時刻(時間帯なし)
time [ (p) ] with time zonetimetz時間帯付き時刻
timestamp [ (p) ] [ without time zone ] 日付と時刻(時間帯なし)
timestamp [ (p) ] with time zonetimestamptz時間帯付き日付と時刻
tsquery テキスト検索問い合わせ
tsvector テキスト検索文書
txid_snapshot ユーザレベルのトランザクションIDスナップショット
uuid 汎用一意識別子
xml XMLデータ

互換性

<title>Compatibility</title>

The following types (or spellings thereof) are specified by <acronym>SQL</acronym>: <type>bigint</type>, <type>bit</type>, <type>bit varying</type>, <type>boolean</type>, <type>char</type>, <type>character varying</type>, <type>character</type>, <type>varchar</type>, <type>date</type>, <type>double precision</type>, <type>integer</type>, <type>interval</type>, <type>numeric</type>, <type>decimal</type>, <type>real</type>, <type>smallint</type>, <type>time</type> (with or without time zone), <type>timestamp</type> (with or without time zone), <type>xml</type>. 次に挙げるデータ型(あるいはその綴り方)はSQLで規定されています。 bigintbitbit varyingbooleancharcharacter varyingcharactervarchardatedouble precisionintegerintervalnumericdecimalrealsmallinttime(時間帯付き、なしの両方)、 timestamp(時間帯付き、なしの両方)、xml

Each data type has an external representation determined by its input and output functions. Many of the built-in types have obvious external formats. However, several types are either unique to <productname>PostgreSQL</productname>, such as geometric paths, or have several possible formats, such as the date and time types. Some of the input and output functions are not invertible, i.e., the result of an output function might lose accuracy when compared to the original input. それぞれのデータ型はそのデータ型の入出力関数で決定される外部表現を保有しています。 組み込みデータ型の多くには、自明の外部書式があります。 とは言っても、経路のようなPostgreSQLに特有な型や、あるいは、日付や時刻データ型のように書式を複数選択できる型がいくつかあります。 一部の入出力関数は可逆ではありません。 つまり、出力関数による結果は元の入力と比較した場合精度を失う可能性があります。

doc/src/sgml/json.sgml doc/src/sgml/array.sgml doc/src/sgml/rowtypes.sgml doc/src/sgml/rangetypes.sgml