PostgreSQL 模式(SCHEMA)

2020-04-22 17:48 更新

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

一個(gè)模式可以包含視圖、索引、據(jù)類型、函數(shù)和操作符等。

相同的對(duì)象名稱可以被用于不同的模式中而不會(huì)出現(xiàn)沖突,例如 schema1 和 myschema 都可以包含名為 mytable 的表。

使用模式的優(yōu)勢(shì):

  • 允許多個(gè)用戶使用一個(gè)數(shù)據(jù)庫并且不會(huì)互相干擾。
  • 將數(shù)據(jù)庫對(duì)象組織成邏輯組以便更容易管理。
  • 第三方應(yīng)用的對(duì)象可以放在獨(dú)立的模式中,這樣它們就不會(huì)與其他對(duì)象的名稱發(fā)生沖突。

模式類似于操作系統(tǒng)層的目錄,但是模式不能嵌套。

語法

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

CREATE TABLE myschema.mytable (
...
);

實(shí)例

接下來我們連接到 w3cschooldb來創(chuàng)建模式 myschema:

w3cschooldb=# create schema myschema;
CREATE SCHEMA

輸出結(jié)果 "CREATE SCHEMA" 就代表模式創(chuàng)建成功。

接下來我們?cè)賱?chuàng)建一個(gè)表格:

w3cschooldb=# create schema myschema;
CREATE SCHEMA=# 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)
);

以上命令創(chuàng)建了一個(gè)空的表格,我們使用以下 SQL 來查看表格是否創(chuàng)建:

w3cschooldb=# create schema myschema;
CREATE SCHEMA=# 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)
);=# select * from myschema.company;
 id | name | age | address | salary 
----+------+-----+---------+--------
(0 rows)

刪除模式

刪除一個(gè)為空的模式(其中的所有對(duì)象已經(jīng)被刪除):

DROP SCHEMA myschema;

刪除一個(gè)模式以及其中包含的所有對(duì)象:

DROP SCHEMA myschema CASCADE;


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)