22.1. 概述
一個資料庫是一些SQL對象(“資料庫對象”)的命名集合。通常每個資料庫對象(表、函數等) 屬于并且隻屬于一個資料庫(不過有幾個系統表如
pg_database
屬于整個集簇并且對集簇中的每個資料庫都是可通路的)。更準确地說,一個資料庫是一個模式的集合, 而模式包含表、函數等等。是以完整的層次是這樣的:伺服器、資料庫、模式、表(或者某些其他對象類型,如函數)。
當連接配接到資料庫伺服器時,用戶端必須在它的連接配接請求中指定它要連接配接的資料庫名。每次連接配接不能通路超過一個資料庫。不過,一個應用能夠在同一個或者其他資料庫上打開的連接配接數并沒有受到限制。資料庫是實體上互相隔離的,并且通路控制是在連接配接層面進行管理的。 如果一個PostgreSQL伺服器執行個體用于承載那些應該分隔并且互相之間并不知曉的使用者 和項目,那麼我們建議把它們放在不同的資料庫裡。如果項目或者使用者是互相關聯的, 并且可以互相使用對方的資源,那麼應該把它們放在同一個資料庫裡,但可能在不同的模式 中。模式隻是一個純粹的邏輯結構并且誰能通路某個模式由權限系統管理。有關管理模式的更多資訊在
第 5.8 節中。
資料庫是使用
CREATE DATABASE
(見
第 22.2 節),并且用
DROP DATABASE
指令删除(見
第 22.5 節)。要确定現有資料庫的集合,可以檢查系統目錄
pg_database
,例如
SELECT datname FROM pg_database;
psql 程式的
\l
元指令和
-l
指令行選項也可以用來列出已有的資料庫。
注意
SQL标準把資料庫稱作“目錄”,不過實際上沒有差別。
本文轉自PostgreSQL中文社群,原文連結: