PostgreSQL
The PostgreSQL Development Team
Edited by
Thomas Lockhart
PostgreSQL
is Copyright ?1996-2000 by PostgreSQL Inc.
編譯:何偉平 laser@zhengmai.com.cn
繁體轉譯:沈俊興 statue@freebsd.sinica.edu.tw
中文譯稿版權聲明:
本文的中文譯稿版權屬於其中文譯稿作者。您可對本手冊進行非商業用途的自由傳播,但務必保証手冊的完整性,轉載時請保留本版權聲明。由於譯者水平有限,錯誤之處在所難免,希望各位用戶指正。由此帶來的一切後果,本人概不負責。
-
內容
-
摘要
-
I. 用戶手冊
-
1. 簡介
-
何為 Postgres?
-
簡單回顧 Postgres
-
關於這個版本
-
資源
-
術語
-
符號
-
問題匯報指導
-
Y2K 聲明
-
版權和商標
-
2. SQL 語法
-
關鍵字
-
注釋
-
名稱
-
常數
-
域和列(字段)
-
符號
-
表達式
-
3. 數據型態
-
數值型態
-
貨幣型態
-
字符型態
-
日期/時間型態
-
布爾型態
-
幾何型態
-
IP 版本 4 網路和主機地址
-
4. 符號
-
語法優先順序
-
通用符號
-
數字符號
-
幾何符號
-
時間間隔符號
-
IP V4 CIDR 符號
-
IP V4 INET 符號
-
5. 函數
-
SQL 函數
-
數學函數
-
字符串函數
-
日期/時間函數
-
格式化函數
-
幾何函數
-
IP V4 函數
-
6. 型態轉換
-
概述
-
符號
-
函數
-
查詢目標
-
UNION 查詢
-
7. 索引和鍵字
-
鍵字
-
部分索引
-
8. 數組
-
9. 繼承
-
10. PL/pgSQL - SQL 程序語言
-
概述
-
描述
-
例子
-
11. PL/Tcl - TCL 程序語言
-
概述
-
描述
-
12. PL/perl - Perl 程序語言
-
概述
-
制作和安裝
-
使用 PL/Perl
-
13. 多版本並行控制
-
介紹
-
事務隔離
-
讀已提交隔離級別
-
可串行化隔離級別
-
鎖和表
-
鎖和索引
-
應用層的數據完整性檢查
-
14. 設置運行環境
-
15. 管理資料庫
-
創建資料庫
-
變換資料庫位置
-
訪問資料庫
-
刪除資料庫
-
16. 硬碟儲存
-
17. 理解性能
-
使用 EXPLAIN
-
18. 向資料庫添加記錄
-
關閉自動提交
-
使用 COPY FROM
-
刪除索引
-
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 - 調換一個表裡某行的字段的值
-
VACUUM - 清理和分析一個 Postgres
資料庫
-
20. 應用
-
createdb
- 創建一個新的 Postgres 資料庫
-
createlang
- 向一個 Postgres 資料庫裡增加一門新的編程語言
-
createuser
- 創建一個新的 Postgres 用戶
-
dropdb -
刪除一個現存 Postgres 資料庫
-
droplang
- 從一個 Postgres 資料庫裡刪除一門編程語言
-
dropuser
- 刪除一個 Postgres 用戶
-
ecpg - 嵌入的
SQL C 預編譯器
-
pgaccess
-Postgres 圖形化交互客戶端
-
pgadmin
- Postgres 用於 Windows
95/98/NT 平台的資料庫管理和設計工具
-
pg_ctl - 啟動,停止 和重新啟動
postmaster
-
pg_dump -
把一個 Postgres 資料庫抽出到一個腳本文件裡
-
pg_dumpall
- 把所有 Postgres 資料庫抽出到一個腳本文件裡
-
psql - Postgres
交互的終端
-
pgtclsh
- Postgres TCL shell 客戶端
-
pgtksh - Postgres
圖形化的 TCL/TK shell
-
vacuumdb
- 清理和分析一個 Postgres 資料庫
-
21. 系統應用
-
initdb -
創建一個新的 Postgres 資料庫安裝
-
initlocation
- 創建一個從屬的 Postgres 資料庫儲存區
-
ipcclean
- 為退出的後端設置共享內存和信號燈
-
pg_passwd
- 管理平面密碼文件
-
pg_upgrade
- 允許不重新裝載數據從前面版本升級
-
postgres
- 運行一個 Postgres 單用戶後端
-
postmaster
- 運行 Postgres 多使用者後端
-
II. 管理員手冊
-
22. 移植
-
目前支援的平台
-
不支援的平台
-
23. 配置選項
-
配置參數 (configure)
-
制作參數(make)
-
本地化支援
-
Kerberos 認証
-
24. 系統布局
-
25. 安裝
-
安裝之前
-
安裝程序
-
26. 在 Win32 上安裝
-
制作庫
-
安裝庫
-
使用庫
-
27. 運行時環境
-
在 Unix 裡使用 Postgres
-
啟動 postmaster
-
使用 pg_options
-
28. 安全性
-
用戶認証
-
用戶名和組
-
訪問控制
-
函數和規則
-
安全 TCP/IP 聯接
-
29. 添加和刪除用戶
-
30. 硬碟管理
-
改變(儲存)位置
-
31. 管理資料庫
-
創建資料庫
-
訪問資料庫
-
刪除資料庫
-
備份和恢復
-
32. 蛻變測試
-
Postmaster 啟動失敗
-
客戶端聯接問題
-
調試資訊
-
33. 資料庫恢復
-
34. 蛻變測試
-
蛻變測試環境
-
蛻變測試程序
-
蛻變分析
-
平台相關的比較文件
-
35. 版本資訊
-
版本 7.0
-
版本 6.5.3
-
版本 6.5.2
-
版本 6.5.1
-
版本 6.5
-
版本 6.4.2
-
版本 6.4.1
-
版本 6.4
-
版本 6.3.2
-
版本 6.3.1
-
版本 6.3
-
版本 6.2.1
-
版本 6.2
-
版本 6.1.1
-
版本 6.1
-
版本 v6.0
-
版本 v1.09
-
版本 v1.02
-
版本 v1.01
-
版本 v1.0
-
Postgres95 Beta 0.03
-
Postgres95 Beta 0.02
-
Postgres95 Beta 0.01
-
計時結果
-
III. 程式員手冊
-
36. 體系結構
-
Postgres
體系概念
-
37. 擴展的 SQL:
概述
-
擴展性是如何工作的
-
Postgres 型態系統
-
關於 Postgres
系統表
-
38. 擴展的 SQL: 函數
-
查詢語言(SQL)函數
-
程序語言函數
-
內部函數
-
編譯(C)語言函數
-
函數重載
-
39. 擴展的 SQL:
型態
-
用戶定義型態
-
40. 擴展的 SQL: 符號
-
符號最佳化資訊
-
41. 擴展的 SQL: 巨集
-
42. Postgres
規則系統
-
Querytree(查詢樹)是什麼?
-
視圖和規則系統
-
INSERT,UPDATE 和 DELETE 的規則
-
規則和權限
-
規則與觸發器之比較
-
43. 擴展索引介面
-
44. 索引開銷計算函數
-
45. GiST 索引
-
46. 鏈接動態鏈接的函數
-
Linux
-
DEC OSF/1
-
SunOS 4.x, Solaris
2.x 和 HP-UX
-
47. 觸發器
-
創建觸發器
-
與觸發器管理器交互
-
數據改變的可視性
-
例子
-
48. 伺服器編程介面
-
介面函數
-
介面支援函數
-
儲存器管理
-
數據改變的可視性
-
例子
-
49. 程序語言
-
安裝程序語言
-
IV. 介面
-
50. 函數
-
51. 大對像
-
歷史資訊
-
實現的特點
-
介面
-
內建的已註冊函數
-
通過 LIBPQ 訪問大對像
-
例子程式
-
52. ecpg - 在 C
裡嵌入 SQL
-
為什麼要嵌入 SQL?
-
概念
-
如何使用 ecpg
-
局限
-
從其他 RDBMS 軟件包移植
-
安裝
-
寄語開發者
-
53. libpq - C 庫
-
資料庫聯接函數
-
查詢執行函數
-
異步查詢處理
-
捷徑
-
異步通知
-
與 COPY 命令相關聯的函數
-
libpq 跟蹤函數
-
libpq 控制函數
-
環境變數
-
線程特性
-
例子程式
-
54. libpq - C++ 綁定庫
-
控制和初始化
-
libpq++ 類
-
資料庫聯接函數
-
查詢執行函數
-
異步通知
-
與 COPY 命令相關聯的函數
-
55. pgtcl - TCL 綁定庫
-
命令
-
例子
-
pgtcl 命令參考資訊
-
56. libpgeasy - 簡化了的 C 綁定庫
-
57. ODBC 介面
-
背景
-
Windows 應用
-
Unix 安裝
-
配置文件
-
ApplixWare
-
58. JDBC 介面
-
制作 JDBC
介面
-
為 JDBC準備資料庫
-
使用驅動
-
裝入 JDBC
-
裝載驅動
-
與資料庫聯接
-
發出查詢和處理結果
-
執行更新
-
關閉聯接
-
使用大對像
-
Postgres 對 JDBC API的擴展
-
深入閱讀
-
59. Lisp 編程介面
-
V. 開發者手冊
-
60. Postgres 原始程式
-
格式
-
61. PostgreSQL 內部概貌
-
查詢的程序
-
聯接是如何建立起來的
-
分析器階段
-
Postgres 規則系統
-
規劃器/最佳化器
-
執行器
-
62. pg_options
-
63. 資料庫系統裡的基因查詢最佳化
-
作為複雜最佳化問題的查詢處理
-
基因算法(GA)
-
Postgres 裡的基因查詢最佳化(GEQO)
-
Postgres GEQO
未來的實現任務
-
64. 前端/後端協議
-
概述
-
協議
-
消息數據型態
-
消息格式
-
65. Postgres
信號
-
66. gcc 預設最佳化
-
67. 後端介面
-
BKI 文件格式
-
通用命令
-
宏命令
-
調試命令
-
例子
-
68. 頁面文件
-
頁面結構
-
文件
-
臭虫
-
VI. 教學課程
-
69. SQL
-
關系數據模型
-
關系數據模型公式
-
在關系數據模型上的操作
-
SQL 語言
-
70. 體系結構
-
Postgres 體系概念
-
71. 開始
-
設置你的運行環境
-
運行SQL界面 (psql)
-
管理資料庫
-
72. 查詢語言
-
SQL 界面
-
概念
-
創建新表
-
向表刈莨入記錄
-
查詢一個表
-
重新定向 SELECT 查詢
-
聯接表
-
更新
-
刪除
-
使用巨集函數
-
73. Postgres SQL
高級特性
-
繼承
-
非原子數值
-
更多高級特性
-
VII. 附錄
-
UG1. 日期/時間支援
-
時區
-
歷史
-
DG1. CVS 倉庫
-
CVS 樹的組織
-
通過匿名 CVS獲取原始程式
-
通過CVSup獲取原始程式
-
DG2. 文件
-
文件地圖
-
文件項目計劃
-
文件源文件
-
制作文件
-
手冊頁
-
v7.0文件硬拷貝產生
-
工具集
-
可選工具集
-
參考書目
-
表目錄
-
3-1. Postgres
數據型態
-
3-2. Postgres
函數常數
-
3-3. Postgres
數字型態
-
3-4. Postgres
貨幣型態
-
3-5. Postgres
字符型態
-
3-6. Postgres
特殊字符型態
-
3-7. Postgres
日期/時間型態
-
3-8. Postgres
日期輸入
-
3-9. Postgres
月份縮寫
-
3-10. Postgres
星期縮寫
-
3-11. Postgres
時間輸入
-
3-12. Postgres
帶時區時間輸入
-
3-13. Postgres
時區輸入
-
3-14. Postgres
特殊日期/時間常數
-
3-15. Postgres
日期/時間輸出風格
-
3-16. Postgres
日期順序傳統
-
3-17. Postgres
布爾型態
-
3-18. Postgres
幾何型態
-
3-19. PostgresIP
版本 4 型態
-
3-20. PostgresIP
型態例子
-
4-1. 符號順序(優先順序下降)
-
4-2. Postgres
符號
-
4-3. Postgres
數字符號
-
4-4. Postgres
幾何符號
-
4-5. Postgres
時間間隔符號
-
4-6. PostgresIP
V4 CIDR 符號
-
4-7. PostgresIP
V4 INET 符號
-
5-1. SQL 函數
-
5-2. 數學函數
-
5-3. 超越數學函數
-
5-4. SQL92
字符串函數
-
5-5. 字符串函數
-
5-6. 日期/時間函數
-
5-7. 格式化函數
-
5-8. 用於日期/時間轉換的模板
-
5-9. 用於日期/時間模板 to_char() 的後綴
-
5-10. 用於 to_char(numeric)的
模板
-
5-11. to_char 例子
-
5-12. 幾何函數
-
5-13. 幾何型態轉換函數
-
5-14. 幾何升級函數
-
5-15. PostgresIP
V4 函數
-
13-1. Postgres
隔離級別
-
19-1. 一個二進制拷貝文件的內容
-
22-1. 支援的平台
-
22-2. 不支援的平台
-
22-3. 不兼容的平台
-
23-1. Kerberos 參數例子
-
34-1. 目錄布局
-
37-1. Postgres 系統表
-
38-1. 用於內建 Postgres
型態的等效 C 型態
-
43-1. 索引構型
-
43-2. B-tree 策略
-
55-1. pgtcl 命令
-
65-1. Postgres
信號
-
68-1. 例子頁面布局
-
UG1-1. Postgres
識別的時區
-
UG1-2. Postgres
澳大利亞時區
-
DG2-1. Postgres
文件產品
-
DG2-2. 目錄等效格式
-
圖片列表
-
24-1. Postgres
文件布局
-
36-1. 聯接是如何建立起來的
-
37-1. 主要的 Postgres
系統表
-
70-1. 聯接是如何建立起來的
-
例子列表
-
19-1. 一個循環重寫規則的例子
-
27-1. pg_options 文件
-
61-1. 一個簡單查詢
-
69-1. 供應商和部件資料庫
-
69-2. 一個內部聯接
-
69-3. 一個使用關系代數的查詢
-
69-4. 帶條件的簡單查詢
-
69-5. 巨集
-
69-6. 巨集
-
69-7. Having
-
69-8. 子查詢
-
69-9. Union, Intersect, Except
-
69-10. 創建表
-
69-11. 創建索引
□□□