【趙渝強老師】PostgreSQL中的模式

赵渝强老师發表於2024-11-30

在PostgreSQL中,所有的資料庫物件都是屬於模式中的物件。這裡的資料庫物件包括:表、索引、檢視、儲存過程、觸發器等等。所有資料庫物件都有各自的物件識別符號oid(object identifiers),它是一個無符號的四位元組整數,相關物件的oid都存放在相關的系統目錄表中,比如資料庫的oid和表的oid分別存放在pg_database,pg_class表中。

下面重點介紹一下PostgreSQL中的模式。影片講解如下:
https://www.bilibili.com/video/BV1TapCenEVC/?aid=112986412813...

當建立一個資料庫時,會為其自動建立一個名為“public”的預設Schema。Schema是資料庫中的名稱空間,在資料庫中建立的所有物件都是在Schema中建立。一個使用者可以從同一個客戶端連線中訪問不同的Schema。而不同的Schema中可以有多個同名的表、索引、檢視、序列、函式等等各種不同的資料庫物件。可以透過下面的方式來檢視當前資料庫的Schema。

postgres=# \dn

#輸出的資訊如下:  

  List of schemas
  Name  |  Owner   
--------+----------
 public | postgres
(1 row)

使用者也可以建立自己的模式,例如:下面的語句建立了一個名叫demo的模式,並在該模式上建立了一張表。

postgres=# create schema demo;
postgres=# create table demo.table1(tid int,tname varchar(10));

注意,在Oracle資料庫中也存在模式的概念。當建立一個Oracle使用者的時候會自動建立一個同名的模式;也就是說,在Oracle中使用者就是模式,它們是一對一的關係。

相關文章