普通表
1. 建立普通表
CREATE TABLE test(
type ...
) PCTFREE 20 PCTUSED 50 TABLESPACE USER01
STORAGE(MINEXTENTS 3)
PCTFREE: 用于指定数据块内UPDATE操作预留的空间的百分比。
PCTUSED: 用于指定数据块上可以重新插入的以用空间最低百分比。
TABLESPACE:用于指定表段所在的表空间。
STORAGE: 用于izhiding表段的存储参数。
2. 建立临时表。
建立临时表后,其结构会一直存在,但其数据只在当前事务或当前会话内有效。在临时表上执行DML操作时,既不会枷锁,也不会将数据变化写到重做日志中。
@事务临时表
事务临时表是指只在当前事务内有效的临时表。如果建立临时表时没有指定ON COMMIT选项,则默认为事务临时表。通过指定ON COMMIT DELETE ROWS选项,也可以指定事务临时表。示例如下:
CREATE GLOBAL TEMPORARY TABLE temp(...)
ON COMMIT DELETE ROWS;
@建立会话临时表
会话临时表是数据只在当前会话内有效的临时表。建立临时表时,通过使用ON COMMIT PRESERVE ROWS选项,可以指定会话临时表。示例如下:
CREATE GLOBAL TEMPORARY TABLE temp(...)
ON COMMIT PRESERVE ROWS;
3.修改表
@ 修改表的物理属性
ALTER TABLE test PCTFREE 40 PCTUSED 50 INITRANS 3;
@ 重新组织表
ALTER TABLE test MOVE TABLESPACE user02;
@ 修改列属性
ALTER TABLE test MODIFY loc VARCHAR2(15);
@ 增加列
ALTER TABLE test ADD remark VARCHAR2(200);
@ 修改列名
ALTER TABLE test RENAME COLUMN loc TO location;
@ 删除列
ALTER TABLE test DROP (phone ,manager);
@ 标记
ALTER TABLE test set UNUSED COLUMN comm;
ALTER TABLE emp UNUSED COLUMNS CHECKPOINT 1000;
索引表
一般情况下,表以及索引数据分别存放在表段和索引段中。如果要经常基于主键列检索表数据,那么oracle建议使用索引表。建立索引表时,oracle会将表以及主键索引的数据一起存放到索引段中。当在WHERE 字句中引用主键时,oracle可以直接根据主键索引值取得表行数据。
1.建立索引表
建立索引表是使用CREATE TABLE 语句完成的。但是在建立索引表时,必须指定ORGANIZATION INDEX 关键字,并且必须定义主键约束。示例如下:
CREATE TABLE test(
...
)
ORGANIZATION INDEX TABLESPACE user01
PCTTHRESHHOLD 20 INCLUDING ..
OVERFLOW TABLESPACE user02;
外部表
外部表是表结构被存放在数据字典,而表数据被存放在OS文件中的表。通过使用外部表,不仅可以在数据库中查询OS文件的数据,还可以使用INSERT方式将OS文件数据装载到数据库中。建立外部表后,可以查询外部表的数据,在外部表上执行连接查询,或对外部表的数据进行排序。但是在外部表上不能执行DML修改,也不能在外部表上建立索引。。
1. 建立外部表
建立外部表是用CREATE TABLE 命令完成的,但建立外部表时必须指定ORGANIZATION EXTERNAL选项
@ 建立目录对象,并授予用户权限
CREATE DIRECTORY ext AS 'D:/ext';
GRANT READ,WRITE ON DIRECTORY ext TO scott;
@ 建立外部表
CREATE TABLE ext_test(
........
)
ORGANIZATION EXTERNAL(
TYPE ORACLE_LOADER DEFAULT DIRECTORY ext
ACCESS PARAMETERS(
records delimited by newline fields terminated by ','
missing field values are null(
.......
)
)LOCATION ('emp.dat')
);