一、创建表
(1)简单表
Create Table emp (Emp_id char(10) primary key,Emp_name varchar2(30),Sal number(5),Tel varchar2(20)
);
(2)带参数的表格创建
create table emp (emp_id char (10) primary key,emp_name varchar2 (30),sal number (5),tel varchar2 (20) )tablespace myspacenamepctused 10pctfree 10initrans 1maxtrans 100storage (initial 1048576 next 1048576pctincrease 50 minextents 1maxextents 512 freelists 1freelist groups 1 buffer_pool recycle
存储参数
tablespace:表格所在的表空间
pctused : 数据块使用空间参数
pctfree : 数据块自由空间参数
initrans :同时更新某个数据块的事务处理的数目
maxtrans:同时更新某个数据块的事务处理的最大数目
initial: 第一扩展区的大小
next: 第二扩展区的大小
pctincrease : 扩展区递增百分率
minextents: 指定最小扩展区的数量
maxextents: 指定最大扩展区的数量
freelists: 指定空闲列表组中表数量,默认及最
小值为1
freelist groups:指定表格空闲列表组的数量,
用于并行服务器
buffer_pool: 指定表格是否存储到数据缓存
及存储缓存的具体位置
(缓冲池: keep、recycle 、default)
(3)从已有表格创建表格
例:create table emp1 as select * from emp;
注意:只有数据类型定义和NOT NULL约束条件可以传递到由子查询创建的新表中。这是因为新表可能要用于不同的环境,现有的PK-FK 关系可能不适合。
(4)分区表创建
CREATE TABLE ORDER_ACTIVITIES
( ORDER_ID NUMBER(7) NOT NULL,ORDER_DATE DATE,TOTAL_AMOUNT NUMBER))
PARTITION BY RANGE (ORDER_DATE)
( PARTITION ORD_ACT_PART01 VALUES LESS THAN
(TO_DATE('01- MAY -2003','DD-MON-YYYY'))TABLESPACE ORD_TS01,
PARTITION ORD_ACT_PART02 VALUES LESS THAN
(TO_DATE('01-JUN-2003','DD-MON-YYYY'))TABLESPACE ORD_TS02)
注:oracle的表分区