Postgresの型システムはいくつかの方法で 分解することができます。型は基本型と複合型に分かれます。基本型は例えば int4のようなもので、Cといった言語で 書かれています。これらは大体「抽象データ型」として知られるものに対応して います。Postgresはユーザに定義されるメソッド を通してのみ演算を行うことができ、ユーザが定義する範囲しか理解 しません。複合型はユーザがテーブルを作ると作られます。EMPは複合型 の一例です。
Postgresはこれらの型を一つの方法でのみ 格納しますが(テーブルの全ての行を格納しているファイルの中で)、 ユーザはこれらの型の属性の内部を問い合わせ言語で見ることが出来、 (例えば)その属性のインデックスを定義することで抽出を最適化する ことができます。 Postgresの基本型はさらに、組み込み型と ユーザ定義型に分かれます。組み込み型(int4の ようなもの)はシステムにコンパイルされているものです。 ユーザ定義型は下記に説明するような方法でユーザが作ります。