1.--DataType分为User-defined和Built-in
##Built-in分为Scalar,Collection,Relationship
##Scalar(标量):文本,数字,时间,二进制
##CHAR(N),NCHAR(N),VARCHAR2(N),NVARCHAR2(N),
##NUMBER(P,S),
##DATE,TIMESTAMP,
##RAW(N),BLOB,CLOB,NLOB,BFILE,LONG,LONG RAW,ROWID,UROWID
2.--表的通用信息
##一个表最多有1000列,如果超过254列则oracle会将列拆分为存储在block中
3.--ROWID Format
##10个字节采用base64编码以18个字符来显示
##Data object number:可以定位该记录位于哪个tablespace
##Relative file number:可以定位该记录位于哪个file
##Block number:定位该记录位于哪个block
##Row number:
4.--row记录包含有Row header,column length,column content
5.--ASSM,MSSM
ASSM:PCTUSED,INITRANS
MSSM:FREELIST,PCTUSED,PCTUSED,INITRANS
6.--Create table主要考虑storage字句和pctused,initrans等块利用的参数
7.--创建临时表(transaction和session生命周期)
create global temporary table
employee_temp
as select * from employees;
##可以静态声明临时表,但在每个session中必须放入数据
##创建transaction生命周期
create global temporary table tmp on commit delete rows
##创建session生命周期
create global temporary table tmp on commit preserve rows
8.--临时表一旦创建即在数据库数据表中进行记录可以一直使用只到drop掉
9.--Row Migration & Chaining(行迁移和链接)
##Row Migration是因为pctfree太小,当某行值需要更新却在块中找不着合适的空间,就只能用其他块的空间
##Row Chaining是因为列太大,一个block放不下
10.--修改storage参数
alter table employees
pctfree 30
pctused 50
storage(next 500K,minextents 2,maxextents);
11.--手动的给表分配extent
alter table employees allocate extent(size 500K datafile '/disk3/data01.dbf');
##用在均匀分配数据在不同的文件上
##对于大规模插数据一次性分配好extent
12.--非分区表(或分区表的一个分区)的reorganized
alter table employees move tablespace data1
13.--获取表的完整信息
select dbms_metadata.get_ddl('table','T')from dual;
14.--删除表的某列
alter table employees drop column comments
cascade constraints checkpoint 1000
##没删除1000行的某列写发生一次checkpoint
15.--给列打上used标签(可以是列暂时对用户不可见,在服务器压力小时再进行删除0
alter table employees
set unused column comments
cascade constraints
alter table employees
drop unused columns checkpoint 1000;
##一次性删除used columns
alter table employee
drop unused columns continue checkpoint 1000
##删除过程中数据库重新启动了还可以继续删除