PostgreSQL 模式(SCHEMA)可以看著是一個(gè)表的集合。
一個(gè)模式可以包含視圖、索引、數(shù)據(jù)類型、函數(shù)和操作符等。
相同的對(duì)象名稱可以被用于不同的模式中而不會(huì)出現(xiàn)沖突,例如 schema1 和 myschema 都可以包含名為 mytable 的表。
使用模式的優(yōu)勢(shì):
允許多個(gè)用戶使用一個(gè)數(shù)據(jù)庫(kù)并且不會(huì)互相干擾。
將數(shù)據(jù)庫(kù)對(duì)象組織成邏輯組以便更容易管理。
第三方應(yīng)用的對(duì)象可以放在獨(dú)立的模式中,這樣它們就不會(huì)與其他對(duì)象的名稱發(fā)生沖突。
模式類似于操作系統(tǒng)層的目錄,但是模式不能嵌套。
我們可以使用 CREATE SCHEMA 語(yǔ)句來(lái)創(chuàng)建模式,語(yǔ)法格式如下:
CREATE SCHEMA myschema.mytable ( ... );
接下來(lái)我們連接到 nhooodb 來(lái)創(chuàng)建模式 myschema:
nhooodb=# create schema myschema; CREATE SCHEMA
輸出結(jié)果 "CREATE SCHEMA" 就代表模式創(chuàng)建成功。
接下來(lái)我們?cè)賱?chuàng)建一個(gè)表格:
nhooodb=# 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 來(lái)查看表格是否創(chuàng)建:
nhooodb=# select * from myschema.company; id | name | age | address | salary ----+------+-----+---------+-------- (0 rows)
刪除一個(gè)為空的模式(其中的所有對(duì)象已經(jīng)被刪除):
DROP SCHEMA myschema;
刪除一個(gè)模式以及其中包含的所有對(duì)象:
DROP SCHEMA myschema CASCADE;