裝好oracle後 表空間,使用者

2021-08-08 17:59:38 字數 2033 閱讀 3882

安裝好資料庫之後,接下來就要開始使用了。

但是我們不能上來就create table,我們需要先建立乙個表空間以及乙個新使用者。

什麼是表空間,為什麼需要表空間?

首先,表空間是乙個邏輯概念,邏輯的意思就是它是實際上不存在的,在資料夾裡找不到的。oracle中真正存著資料的檔案(物理上最大的)是資料檔案(data file)。而在邏輯上把一組資料檔案看成是乙個集合,就是乙個表空間。

乙個資料庫可以有多個 表空間 ,乙個表空間只能屬於乙個資料庫。

乙個表空間可以有多個資料檔案,乙個資料檔案只能屬於乙個表空間。

而我們熟悉的表,是放在資料檔案中的,乙個資料檔案中可以有多個表。

不僅是表,還有索引、檢視等等,這些都是放在資料檔案中的。而這些表檢視等,被稱為。乙份資料檔案包含多個段,有各種段,比如資料段(表),索引段,檢視段,回滾段等等。

乙個段由多個構成,區指分配給某一物件(比如表)的任何連續

塊是oracle的最小資料管理單元。當區的儲存空間用完後,它會自動擴充套件臨近的塊,用來儲存。所以區是不定大小的,塊是確定大小的。

如圖就是上文說的,是oracle的儲存結構。可以看出,物理上真正存在的是資料檔案和塊。其他都是邏輯上的概念,是方便系統管理的邏輯結構。

所以我們需要建立乙個表空間,然後建立新使用者(相當於註冊乙個使用者),然後把該錶空間分配給這個使用者。使用者與表空間是多對多的,乙個使用者可以有多個表空間,乙個表空間可以有多個使用者。這裡與剛才網盤的模擬又有些區別。

建立表空間的sql語句如下:

create tablespace your_data

logging

datafile'位址\your_data.dbf' --位址指某個實際資料夾位址

size

50m autoextend on

next

50m maxsize 20480m

extent management local;

同時我們也需要建立乙個臨時表空間

什麼是虛擬表,有什麼用?

上文所說的表空間是永久表空間,是存放永久性資料的,如表,檢視,索引等。臨時表空間,顧名思義,就是存放臨時資料的,不是永久性的。

存放什麼臨時性資料呢?我們知道,在進行表連線查詢時,會先將兩張表做笛卡爾積,生成一張非常大的,有很多無效資訊的表——稱為臨時表。這時候我們往往會通過where語句對其進行篩選,篩出我們需要的資料。而那張臨時表自然不能存在永久表空間裡,所以我們需要乙個臨時表空間來存放它。除了這種情況,還有很多地方會用到臨時表(但筆者目前還不清楚),因此我們需要建立乙個臨時表空間配合永久表空間使用。

建立臨時表空間的sql語句:

create

temporary tablespace your_temp

tempfile'位址\your_temp.dbf'

size

50m autoextend on

next

50m maxsize 20480m

extent management local;

做完上面兩件事後,我們終於可以建立使用者了,在建立使用者的同時,把錶空間和臨時表空間分配給使用者。

sql語句:

create

user newuser identified by 密碼 --(注意這裡的密碼不能有特殊字元,否則會報錯)

account unlock

defaul tablespace your_data

temporary tablspace your_temp;

這樣,就可以使用這個使用者登入上去,然後**想幹的事了。

Oracle 表空間 使用者

表空間刪除表空間 drop tablespace duke temp including contents and datafiles 執行完之後,找到對應的 dbf 檔案刪除。oracle 是以使用者為單位來管理的,所有的物件都依賴於使用者,因此 oracle 中工作的起步就是建立乙個自己的使用者...

Oracle建立表空間,使用者

注意點 1.如果在pl sql 等工具裡開啟的話,直接修改下面的 中 斜體加粗部分 執行 2.確保路徑存在,比如 d oracle oradata oracle9i 也就是你要儲存檔案的路徑存在 分為四步 第1步 建立臨時表空間 複製 如下 create temporary tablespace u...

oracle使用者預設表空間

alter database default tablespace 通過執行以上命令,可以設定系統的預設表空間。這樣的話,在建立新使用者時,如果不指定他的預設表空間,就會採用上面指定的系統預設表空間作為這個用的預設表空間。sql conn as sysdbasql create user test1...