PostgreSQL
PrevNext

Chapter 8. データ型

Table of Contents
数値型
金額型
文字型
日付/時刻型
ブール型
座標型

Postgresで使用できる, 組込みデータ型を示します。

Postgresでは,多くのネイティブのデータ型を, ユーザに対して提供してしています。 ユーザは,別のところで解説されているdefine type コマンドを使って、Postgresに対して新しい 型を追加することもできます。

データ型の内容については、以下のセクションでSQL標準への準拠や 移植状況、および使用法について解説しています。いくつかの Postgresタイプは直接 SQL-92互換タイプに 対応しています。その他のケースでは,SQL92 文法で定義されている データ型は、直接ネイティブのPostgres の型にマッピングされています。多くの組み込み型は明示的な外部 フォーマットを持っています。しかしながら、開いた/閉じたパス のようにPostgres固有のものもあれば、 日付や時刻型のように、複数のフォーマットを持つものもあります。

Table 8-1. Postgresデータ型

Postgres

SQL92

SQL3

説明
boolboolean論理ブール型(真/偽)
box2次平面における長方形
char(n)character(n)固定長文字列
circle2次平面における円e
datedate時刻を除くカレンダー日付
float4/8float(p)精度pを持つ浮動小数点数
float8real, double precision倍精度浮動小数点数
int2smallint符号付き2バイト整数
int4int, integer符号付き4バイト整数
int4decimal(p,s)p <= 9, s = 0である正確な数値
int4numeric(p,s)p == 9, s = 0である正確な数値
line2次平面における直線
lseg2次平面における線分
moneydecimal(9,2)USスタイルの通貨
path2次平面における開いた、および閉じた座標パス
point2次平面における座標点
polygon2次平面における閉じた座標パス(多角形)
timetime時刻
timespaninterval汎用の時間間隔
timestamptimestamp with time zone日付/時刻
varchar(n)character varying(n)可変長文字列

Table 8-2. Postgres関数定数

Postgres

SQL92

説明
getpgusername()current_user現在のセッションにおけるユーザ名
date('now')current_date現在のトランザクションにおける日付
time('now')current_time現在のトランザクションにおける時刻
timestamp('now')current_timestamp現在のトランザクションにおける日付と時刻

Postgresは、ORDBMS 開発のフロントエンド において特色を持っています。SQL3 適合に加え、SQL92 相当の部分が サポートされています。我々はSQL92適合に努力してはいますが、標準案の 中にはまずい考え方や未来の標準では生き残れないようなケースもあります。 Postgresでは、これらのケースに対しては あまり適合しようという考えはありません。しかしながら、これらのケース はあまり使用されないで廃れてゆく傾向にあり、通常のユーザはまず それらを使おうとはしないようです。

ベースとなる型(整数や浮動小数点数など)に対応しているほとんどの 入出力関数は、いくつかのエラーチェックをしますが、特別に厳密な チェックを行わないものもあります。より重要なことは、演算子や 関数(たとえば加算や乗算)によっては、全くエラーチェックを 行わないものがあることです。このため、多くの数値演算子は(たとえば) アンダーフローやオーバーフローを起こし、それらはユーザに通知される ことはありません。

入出力関数の中には可逆的でないものもあります。すなわち、ある出力関数 の結果をオリジナルの入力と比較した場合、有効桁数を失うことがありうる ということです。


PrevHomeNext
データベースの削除Up数値型