系統表是關聯式資料庫存放結構元資料的地方, 比如表和欄位,以及內部登記資訊等. PostgreSQL 的系統表就是普通表. 你可以刪除然後重建這些表,增加列,插入和更新數值, 然後徹底把你的系統搞垮. 通常我們不應該手動修改系統表,通常總有 SQL 命令可以做這些事情. (比如,CREATE DATABASE 向 pg_database 表插入一行 -- 並且實際上 在硬碟上建立該資料庫.) 有幾種特別深奧的操作例外,比如增加索引存取方法.
大多數系統表都是在資料庫建立的過程中從模版資料庫中拷貝過來的, 因此都是資料庫相關的。少數表是在整個安裝中物理上所有資料庫共享的﹔ 這些表在獨立的表的描述中用標記標出來了。
Table 3-1. 系統表
| 表名字 | 表用途 |
|---|---|
| pg_aggregate | 統計函數 |
| pg_am | 索引存取方法 |
| pg_amop | 存取方法運算子 |
| pg_amproc | 存取方法支援過程 |
| pg_attrdef | 欄位預設值 |
| pg_attribute | 表的列("屬性","欄位") |
| pg_cast | 投影(資料類型轉換) |
| pg_class | 表,索引,序列("關系") |
| pg_constraint | 檢查約束,唯一/主鍵約束,外鍵約束 |
| pg_conversion | 編碼轉換資訊 |
| pg_database | 本集群內的資料庫 |
| pg_depend | 資料庫物件之間的依賴性 |
| pg_description | 資料庫物件的描述或註釋 |
| pg_group | 資料庫使用者的組 |
| pg_index | 附加的索引資訊 |
| pg_inherits | 表繼承分級 |
| pg_language | 用於寫函數的語言 |
| pg_largeobject | 大物件 |
| pg_listener | 異步通知 |
| pg_namespace | 名字空間(樣式) |
| pg_opclass | 索引存取方法運算子表 |
| pg_operator | 運算子 |
| pg_proc | 函數和過程 |
| pg_rewrite | 查詢重寫規則 |
| pg_shadow | 資料庫使用者 |
| pg_statistic | 最佳化器統計 |
| pg_trigger | 觸發器 |
| pg_type | 資料類型 |
每個表更詳細的資訊在下面列出。