PostgreSQL 模式(SCHEMA) | 菜鳥教程

PostgreSQL 模式(SCHEMA)可以看著是一個表的集合。

一個模式可以包含視圖、索引、據類型、函數和操作符等。

相同的對象名稱可以被用于分歧的模式中而不會出現沖突,例如 schema1 和 myschema 都可以包含名為 mytable 的表。

使用模式的優勢:

  • 允許多個用戶使用一個數據庫而且不會互相干擾。

  • 將數據庫對象組織成邏輯組以便更容易管理。

  • 第三方應用的對象可以放在獨立的模式中,這樣它們就不會與其他對象的名稱發生沖突。

模式類似于操作系統層的横眉錄,但是模式不克不及嵌套。

語法

我們可以使用 CREATE SCHEMA 語句來創建模式,語法格式如下:

CREATE TABLE myschema.mytable (
...
);

實例

接下來我們連接到 runoobdb 來創建模式 myschema:

runoobdb=# create schema myschema;
CREATE SCHEMA

輸出結果 "CREATE SCHEMA" 就代碼模式創建成功。

接下來我們再創建一個表格:

runoobdb=# create table myschema.company(
   ID   INT              NOT NULL,
   NAME VARCHAR (20)     NOT NULL,
   AGE  INT              NOT NULL,
   ADDRESS  CHAR (25),
   SALARY   DECIMAL (18, 2),
   PRIMARY KEY (ID)
);

以上命令創建了一個空的表格,我們使用以下 SQL 來查看表格是否創建:

runoobdb=# select * from myschema.company;
 id | name | age | address | salary 
----+------+-----+---------+--------
(0 rows)

刪除模式

刪除一個為空的模式(其中的所有對象已經被刪除):

DROP SCHEMA myschema;

刪除一個模式以及其中包含的所有對象:

DROP SCHEMA myschema CASCADE;