oracle中的schema和表空間

2021-10-20 05:43:15 字數 1161 閱讀 6146

我一直搞不清oracle裡面的schema和表空間。尤其是不知道這個schema是個啥。一般,我們建立表空間,將資料表建在其中,然後匯出匯入,好像指定的也是這個同名的schema:

--建立乙個表空間work

create

tablespace

work datafile 'd:\ybjzcheck\db\work.ora' size 500m autoextend on

;--建立資料庫使用者work

create

user

work identified by

work

default

tablespace

work

;grant

connect

, resource to

work

;

--匯出schema=work的資料

expdp 'sys/password@pdbybjzcheck as sysdba' directory=dbbak dumpfile

=pdbybjzcheck.expdp logfile=pdbybjzcheck.log schemas=

work

難道 schema 就是 表空間?

現在看起來應該不是。我還沒有找到確切的答案,只能按照個人的理解來回答:

表空間是乙個儲存概念,而schema是乙個資料結構定義的概念。表空間負責儲存,schema定義的是表的字段、字段型別,等等。

如果我沒有理解錯,則乙個schema可以對應多個表空間。而表空間也可以存放來自多個schema的表、檢視等資料庫物件。

注意到,使用表空間work的資料庫使用者也名叫work,由於我們在建立表空間過程中,並沒有乙個語句建立所謂的schema,難道資料庫使用者就是schema?

也不是。但是,schema的確跟使用者是一對一的關係,系統應當是在建立使用者的時候,自動建立的schema。

使用者是用來連線資料庫物件。而模式是用來建立管理物件的。模式跟使用者在oracle 是一對一的關係。

至於為啥是這樣的設計,不曉得。

不用猜,看看下面材料就清楚:

2019-04-19 schema vs tablespace vs user 模式、表空間、使用者的聯絡與區別

oracle中的Schema 分享

在乙個資料庫中可以有多個應用的資料表,這些不同應用的表可以放在不同的schema之中,同時,每乙個schema對應乙個使用者,不同的應用可以以不同的使用者連線資料庫,這樣,乙個大資料庫就可以根據應用把其表分開來管理。不同的schema之間它們沒有直接的關係,不同的shcema之間的表可以同名,也可以...

oracle 表空間和schema

什麼是schema?schema就是資料庫物件的集合 為了區分各個集合,我們需要給這個集合起個名字,這個名字就是schema 舉例說明 訪問scott使用者下的emp表,通過select from emp,其實這條sql語句的完整寫法為 select from scott.emp 對於資料庫來說,不...

Oracle的schema 方案 模式 使用者

size small size small size x small 從定義中我們可以看出schema為資料庫物件的集合,為了區分各個集合,我們需要給這個集合起個名字,這些名字就是我們在企業管理器的方案下看到的許多類似使用者名稱的節點,這些類似使用者名稱的節點其實就是乙個schema,schema裡...