oracle學習筆記 表的管理 8

2021-07-22 12:36:44 字數 2633 閱讀 7378

oracle中的資料庫物件包括表、檢視、索引、儲存程式、序列等,這些資料庫物件以一種邏輯關係組織在一起,這就是模式(schema)。模式是乙個使用者所擁有的資料庫物件的集合,模式的名稱和使用者名稱相同。

一、表的管理

1、 表的結構

建立乙個表時,同時建立乙個表段,用於存放表中的資料。表中的資料在物理上都是存放在資料塊上的,資料塊中存放的是一行行的資料,結構如下:

行的頭部記錄了列數、行間的全連線、加鎖資訊等。列長度記錄列的實際占用位元組,列值記錄實際存放的資料。

表中的每行資料都包含乙個行號,用來標識改行資料的物理位置,可通過偽列rowid獲得,他是乙個18位的字串,其組成如下:

可以通過dbms_rowid程式包中的函式對行號進行分析,用法如下表:

函式描述

rowid_relative_fno

返回一行資料所在資料檔案的相對檔案號

rowid_object

返回一行資料所在資料庫物件的編號

rowid_block_number

返回一行資料所在資料塊的編號

rowid_row_number

返回一行資料在資料塊中的行號

2、表的建立建立表時可以通過create table子句指定一些重要屬性。

a.pctfree和pctused子句

指定資料塊使用的情況,當剩餘空間小於pctfree指定的值時不能再向資料塊中寫入資料,當所使用的空間低於pcrused指定的值時可以再次向資料塊中寫入資料。

b.tablespace子句

指定將表建立在哪個表空間上,如果不指定,則建立在使用者的預設表空間上。

c.initrans和maxtrans子句

oracle允許多個併發的事務同時修改乙個資料塊中的資料,該子句用於控制乙個資料塊上的併發事務數量。initrans指定初始的併發數,maxtrans指定最大的併發數。

d.cache子句

指定該子句後,當使用者第一次訪問資料表時,該錶的所有資料將被讀取到資料庫快取記憶體中,並保留一段時間。對較小的、訪問頻繁的表可以考慮指定。

e.parallel子句

指定該子句後,在進行批量插入資料時可以併發執行。

f.logging子句

預設為logging,使用者在執行dml和ddl時將產生重做日誌,如果不希望產生重做日誌,使用者可以指定nologging。

g.compress子句

指定該子句後,乙個資料塊中兩行完全相同的資料將被壓縮為一行,並被儲存在資料塊的開始,資料塊中本應該儲存這兩行資料的地方只儲存該行資料的引用。

3、表的修改

a.修改表的物理屬性

alter table tb_name 引數名 值
b.

表的移動

表移動的作用:

>消除表中的儲存碎片;

>消除表中資料塊間的鏈結;

>把錶移動的另乙個表空間

>修改表所使用的資料塊大小

例如:

sql>alter table tb1 move tablespace tbs1;

表移動後原表索引將不可用。

c.儲存空間的手工分配和**

儲存空間的分配一般由oracle根據儲存引數的設定自動進行。但也可以通過命令手工分配,

sql>alter table tb1 allocate extent (size 512k);
在表段hwm以下,可能存在一些尚未使用的資料塊,可通過命令將這些資料塊**:

sql>alter table tb1 deallocate unused;
4、表的刪除刪除表將產生以下結果:

>表的結構資訊從資料字典中被刪除,表中資料不可訪問;

>表上的所有索引和觸發器被一起刪除;

>所有建立在該錶上的同義詞、檢視和儲存程式變為無效;

>所有分配給表的區變為空閒,可被分配給其他資料庫物件

但是當刪除乙個使用者或者刪除乙個表空間時,使用者或表空間中的資料庫物件不會放入**站,並且**站中原本屬於該使用者或該錶空間的資料也會被刪除。

>檢視**站是否開啟

sql> select name, value from v$parameter where name='recyclebin';
>可以通過設定初始化引數recyclebin啟用或禁用**站功能。

sql> alter system set recyclebin=off|on;
>檢視**站物件

sql> select * from recyclebin
>還原**站

sql> flashback table test to before drop;

Oracle學習筆記 表的管理

create table table name filed1 datatype filed2 datatype filed3 datatype filed 指定列名 datatype 列型別文字 二進位制型別 數值型別 時間日期 注意 1.如果資料長度固定,則應當使用char資料來存放,訪問速度快 ...

oracle表的查詢學習筆記

檢視表結構 desc emp 複製所查詢的表資料,加入該錶 insert into users userid,username,userpass select from users 查詢該錶有多少列 select count from users 取消重複行 select distinct dept...

Oracle表的管理

1 建立表 例 create table student xh number 4 xm varchar2 20 char 20 birthday date,sal number 7,2 2 在表中新增字段 alter table student add classid number 2 3 檢視表的...