PostgreSQL User's Guide

The PostgreSQL Development Team

Edited by

Thomas Lockhart

PostgreSQL
is Copyright © 1996-2000 by PostgreSQL Inc.


Table of Contents
Summary
1. Introduction
What is Postgres?
A Short History of Postgres
The Berkeley Postgres Project
Postgres95
PostgreSQL
About This Release
Resources
Terminology
Notation
Problem Reporting Guidelines
Identifying Bugs
What to report
Where to report bugs
Y2K Statement
Copyrights and Trademarks
2. SQL Syntax
Key Words
Reserved Key Words
Non-reserved Keywords
Comments
Names
Constants
String Constants
Integer Constants
Floating Point Constants
Constants of Postgres User-Defined Types
Array constants
Fields and Columns
Fields
Columns
Operators
Expressions
Parameters
Functional Expressions
Aggregate Expressions
Target List
Qualification
From List
3. Data Types
Numeric Types
The Serial Type
Monetary Type
Character Types
Date/Time Types
Date/Time Input
Date/Time Output
Time Zones
Internals
Boolean Type
Geometric Types
Point
Line Segment
Box
Path
Polygon
Circle
IP Version 4 Networks and Host Addresses
CIDR
inet
4. Operators
Lexical Precedence
General Operators
Numerical Operators
Geometric Operators
Time Interval Operators
IP V4 CIDR Operators
IP V4 INET Operators
5. Functions
SQL Functions
Mathematical Functions
String Functions
Date/Time Functions
Formatting Functions
Geometric Functions
IP V4 Functions
6. Type Conversion
Overview
Guidelines
Operators
Conversion Procedure
Examples
Functions
Examples
Query Targets
Examples
UNION Queries
Examples
7. Indices and Keys
Keys
Partial Indices
8. Arrays
9. Inheritance
10. PL/pgSQL - SQL Procedural Language
Overview
Description
Structure of PL/pgSQL
Comments
Declarations
Data Types
Expressions
Statements
Trigger Procedures
Exceptions
Examples
Some Simple PL/pgSQL Functions
PL/pgSQL Function on Composite Type
PL/pgSQL Trigger Procedure
11. PL/Tcl - TCL Procedural Language
Overview
Description
Postgres Functions and Tcl Procedure Names
Defining Functions in PL/Tcl
Global Data in PL/Tcl
Trigger Procedures in PL/Tcl
Database Access from PL/Tcl
12. PL/perl - Perl Procedural Language
Overview
Building and Installing
Using PL/Perl
13. Multi-Version Concurrency Control
Introduction
Transaction Isolation
Read Committed Isolation Level
Serializable Isolation Level
Locking and Tables
Table-level locks
Row-level locks
Locking and Indices
Data consistency checks at the application level
14. Setting Up Your Environment
15. Managing a Database
Database Creation
Alternate Database Locations
Accessing a Database
Database Privileges
Table Privileges
Destroying a Database
16. Disk Storage
17. Understanding Performance
Using EXPLAIN
18. Populating a Database
Disable Auto-commit
Use COPY FROM
Remove Indices
19. SQL コマンド
ABORT — 現在のトランザクションをアボートする。
ALTER GROUP — ユーザをグループに追加する、または、グループからユーザを削除する。
ALTER TABLE — テーブルの特性を変更する。
ALTER USER — ユーザアカウント情報を変更する。
BEGIN — トランザクションを連鎖モードで開始する。
CLOSE — カーソルを閉じる。
CLUSTER — 記憶領域のクラスタリング通知をサーバに与える。
COMMENT — オブジェクトにコメントを付与する。
COMMIT — 現在のトランザクションをコミットする。
COPY — ファイルとテーブル間でデータをコピーする。
CREATE AGGREGATE — 新しい集約関数を定義する。
CREATE CONSTRAINT TRIGGER — 制約をサポートするトリガを作成する。
CREATE DATABASE — 新しいデータベースを作成する。
CREATE FUNCTION — 新しい関数を定義する。
CREATE GROUP — 新しいグループを作成する。
CREATE INDEX — 二次インデックスを作成する。
CREATE LANGUAGE — 関数用の新しい言語を定義する。
CREATE OPERATOR — 新しいユーザ演算子を定義する。
CREATE RULE — 新しいルールを定義する。
CREATE SEQUENCE — 新しいシーケンス生成器を作成する。
CREATE TABLE — 新しいテーブルを作成する。
CREATE TABLE AS — 新しいテーブルを作成する。
CREATE TRIGGER — 新しいトリガを作成する。
CREATE TYPE — 新しい基本データ型を定義する。
CREATE USER — 新規にデータベースユーザを作成する。
CREATE VIEW — 仮想テーブルを作成する。
DECLARE — テーブルアクセス用のカーソルを定義する。
DELETE — テーブルから行を削除する。
DROP AGGREGATE — 集約関数の定義を削除する。
DROP DATABASE — 既存のデータベースを削除する。
DROP FUNCTION — ユーザ定義の C 関数を削除する。
DROP GROUP — グループを削除する。
DROP INDEX — データベースからインデックスを削除する。
DROP LANGUAGE — ユーザ定義の手続き言語を削除する。
DROP OPERATOR — データベースから演算子を削除する。
DROP RULE — データベースから既存のルールを削除する。
DROP SEQUENCE — 既存のシーケンスを削除する。
DROP TABLE — データベースから既存のテーブルを削除する。
DROP TRIGGER — トリガの定義を削除します。
DROP TYPE — システムカタログからユーザ定義の型を削除する。
DROP USER — ユーザを削除する。
DROP VIEW — 既存のビューをデータベースから削除する。
END — 現在のトランザクションをコミットする。
EXPLAIN — 文の実行計画を示す。
FETCH — カーソルを使用した行の入手。
GRANT — ユーザ、グループあるいはすべてのユーザにアクセス権限を与える。
INSERT — テーブルに新しい行を挿入する。
LISTEN — 通知条件について応答を監視する。
LOAD — 動的にオブジェクトファイルを読み込む。
LOCK — トランザクション内部でのテーブルの明示的なロック。
MOVE — カーソルの位置を移動します。
NOTIFY — ある通知条件を監視する全てのフロントエンド、バックエンドに信号 を送る。
REINDEX — スタンドアローン状態の Postgres において、破損したシステム インデックスを修復する。
RESET — セッションにおける実行時パラメータをデフォルト値に戻す。
REVOKE — ユーザ、グループ、もしくは、全てのユーザからアクセス権限 を取り上げる。
ROLLBACK — 現在のトランザクションをアボートする。
SELECT — テーブルもしくはビューから行を取り出す。
SELECT INTO — 既存のテーブル、もしくは、ビューから新しいテーブルを作成する。
SET — セッションにおける実行時パラメータを設定する。
SHOW — セッションにおける実行時パラメータを示す。
TRUNCATE — テーブルを空にする。
UNLISTEN — 通知の監視を停止する。
UPDATE — テーブル内の列の値を置き換えます。
VACUUMPostgres データベースのゴミ掃除と解析 を行なう。
20. アプリケーション
createdbPostgres データベースを新しく作成する。
createlangPostgres データベースにプログラミン グ言語を新規に追加する。
createuser — 新しい Postgres ユーザを作成する。
dropdb — 既存の Postgres データベースを削除する。
droplangPostgres データベースからプログ ラミング言語を削除する。
dropuserPostgres ユーザを取り去る(削除する)。
ecpg — 埋め込み SQL 用 C プリプロセッサ
pgaccessPostgres のためのグラフィカル 対話型クライアント 
pgadmin — Windows 95/98/NT 用 Postgres データベース管理・設計ツール。
pg_ctl — postmaster の起動、停止、再起動を行なう。
pg_dumpPostgres データベースを スクリプトファイルに抽出する。
pg_dumpall — 全ての Postgres データベースを スクリプトファイルに抽出する
psqlPostgres 対話式端末型プログラム
pgtclshPostgres TCL シェルクライアント
pgtkshPostgres グラフィカル TCL/TK シェル
vacuumdbPostgres データベースのゴミ掃除と解析を 行なう。
21. システムアプリケーション
initdb — 新しい Postgres データベースインストレーション を作成する。
initlocation — 二次的 Postgres データベース格納領域 を作成する。
ipcclean — 中断したバックエンドが持つ共有メモリとセマフォを片付ける。
pg_passwd — 平文パスワードファイルの操作を行なう。
pg_upgrade — データの再読み込みを行なわずに、以前のリリースからのアップグレード を可能にする。
postgresPostgres シングルユーザバックエンド の起動
postmasterPostgres のマルチユーザバック エンドの起動
UG1. Date/Time Support
Time Zones
Australian Time Zones
Date/Time Input Interpretation
History of Units
Bibliography
List of Tables
3-1. Postgres Data Types
3-2. Postgres Function Constants
3-3. Postgres Numeric Types
3-4. Postgres Monetary Types
3-5. Postgres Character Types
3-6. Postgres Specialty Character Type
3-7. Postgres Date/Time Types
3-8. Postgres Date Input
3-9. Postgres Month Abbreviations
3-10. Postgres Day of Week Abbreviations
3-11. Postgres Time Input
3-12. Postgres Time With Time Zone Input
3-13. Postgres Time Zone Input
3-14. Postgres Special Date/Time Constants
3-15. Postgres Date/Time Output Styles
3-16. Postgres Date Order Conventions
3-17. Postgres Boolean Type
3-18. Postgres Geometric Types
3-19. PostgresIP Version 4 Types
3-20. PostgresIP Types Examples
4-1. Operator Ordering (decreasing precedence)
4-2. Postgres Operators
4-3. Postgres Numerical Operators
4-4. Postgres Geometric Operators
4-5. Postgres Time Interval Operators
4-6. PostgresIP V4 CIDR Operators
4-7. PostgresIP V4 INET Operators
5-1. SQL Functions
5-2. Mathematical Functions
5-3. Transcendental Mathematical Functions
5-4. SQL92 String Functions
5-5. String Functions
5-6. Date/Time Functions
5-7. Formatting Functions
5-8. Templates for date/time conversions
5-9. Suffixes for templates for date/time to_char()
5-10. Templates for to_char(numeric)
5-11. to_char Examples
5-12. Geometric Functions
5-13. Geometric Type Conversion Functions
5-14. Geometric Upgrade Functions
5-15. PostgresIP V4 Functions
13-1. Postgres Isolation Levels
19-1. バイナリコピーファイルの内容
UG1-1. Postgres Recognized Time Zones
UG1-2. Postgres Australian Time Zones
List of Examples
19-1. 循環する書き換えルールの組合せの例