GB | BIG5
|
| 首頁 > 數據庫 > 其它 > 正文 |
 |
| PostgreSQL7.0手冊-用戶手冊-9. 繼承 |
| 編譯:何偉平 laser@zhengmai.com.cn (2001-04-21 21:27:00) |
第九章. 繼承
讓我們創建兩個表.表 capitals 包含各州的首府,同時也是cities表.自然而然,表 capitals 應該從 表 cities 繼承下來.
CREATE TABLE cities (
name text,
population float,
altitude int -- (in ft)
);
CREATE TABLE capitals (
state char(2)
) INHERITS (cities);
在本例中,一條 capitals 的記錄 繼承 所有父表 cities 的字段(name,population,和 altitude). 字段 name 的類型是 text,Postgres用變長ASCII字符串的本機類型.字段 population 的類型是 float, Postgres 用雙精度浮點數的類型.表 capitals 多一個字段,state,表明首府所在的州.在Postgres裡,一個表可以從0到多個其他表繼承下來,一個查詢可以檢索一個表的所有記錄,或是檢索該表和其所有代的記錄.
注意:繼承實際上是分級的不閉合的層次關系。(The inheritance hierarchy is a actually a directed acyclic graph.)
例如,下面查詢將找出所有海拔500英尺及以上的城市:
SELECT name, altitude
FROM cities
WHERE altitude > 500;
name | altitude
-----------+----------
Las Vegas | 2174
Mariposa | 1953
(2 rows)
另一方面,如果要找出包括州首府在內的所有海拔超過500英尺的城市,查詢應該是這樣的:
SELECT c.name, c.altitude
FROM cities* c
WHERE c.altitude > 500;
返回:
name | altitude
-----------+----------
Las Vegas | 2174
Mariposa | 1953
Madison | 845
在這裡citics的“*” 表明該查詢應該遍歷所有繼承級別低citics的表.許多我們已經討論過的命令 -- SELECT,UPDATE 和 DELETE 等和其他象 ALTER TABLE 這樣的命令都支持“*”(譯注:像命令行中的通配符 "*")。
--------------------------------------------------------------------------------
(http://www.fanqiang.com)
進入【UNIX論壇】
|
|
| 相關文章 |
PostgreSQL7.0手冊-附錄-文檔 (2001-04-21 23:50:44) PostgreSQL7.0手冊-附錄-日期/時間支持-CVS 倉庫 (2001-04-21 23:48:48) PostgreSQL7.0手冊-教程 -73. Postgres SQL 高級特性 (2001-04-21 23:45:36) PostgreSQL7.0手冊-教程 -72. 查詢語言 (2001-04-21 23:44:40) PostgreSQL7.0手冊-教程 -71. 開始 (2001-04-21 23:42:54) PostgreSQL7.0手冊-教程 -70. 體系結構 (2001-04-21 23:41:58) PostgreSQL7.0手冊-教程 -69. SQL (2001-04-21 23:41:23) PostgreSQL7.0手冊-開發者手冊 -68. 分頁文件 (2001-04-21 23:39:22) PostgreSQL7.0手冊-開發者手冊 -67. 端接口 (2001-04-21 23:38:34) PostgreSQL7.0手冊-開發者手冊 -66. gcc 缺省優化 (2001-04-21 23:37:20)
|
===更多相關=== |
|
|
 |
★ 樊強制作 歡迎分享 ★ |