1、创建表:
CREATE [GLOBAL TEMPRARY] TABLE table_name (
column_name type [CONSTRAINT constraint_def DEFAULT default_exp]
[,column_name type [CONSTRAINT constraint_def DEFAULT default_exp] ...]
)
[ON COMMIT {DELETE | PRESERVE} ROWS]
TABLESPACE tab_space;
- GLOBAL TEMPRARY:临时表。有效期有ON COMMIT指定。
- table_name:表名
- columne_name:列名
- type:列类型
- constraint_def:列约束
- default_exp:列默认值
- ON COMMIT:指定临时表的有效期。DELETE:临时表数据在事务的末尾被删掉。PRESERVE:临时表数据在会话末尾被删掉。
- tab_space:所属表空间,如果没有,则为默认表空间。
具体示例:
CREATE TABLE order_status2 (
id INTEGER CONSTRAINT order_status2_pk PRIMARY KEY,
status VARCHAR2(10),
last_modified DATE DEFAULT SYSDATE
);
2、修改表:
- 添加列:ALTER TABLE order_status2 ADD modified_by INTEGER;
- 修改列:ALTER TABLE order_status2 MODIFY status VARCHAR(20);
- 删除列:ALTER TABLE order_status2 DROP COLUMN status;
- 添加约束:ALTER TABLE order_status2 ADD CONSTRAINT check_name check_def;(ALTER TABLE order_status2 ADD CONSTRAINT ck_order_status CHECK (status in ('status1','status2')))【添加主键:ALTER TABLE order_status2 ADD CONSTRAINT pk_order_status2 PRIMARY KEY (id)】【添加外键:ALTER TABLE order_status2 ADD CONSTRAINT fk_order_status2_another_tbl FOREIGN KEY (status) REFERENCES another_tbl(column_name)】
- 删除约束:ALTER TABLE order_status2 DROP CONSTRAINT pk_order_status2;
- 启用约束:ALTER TABLE order_status2 ENABLE CONSTRAINT pk_order_status2;
- 禁用约束:ALTER TABLE order_status2 DISABLE CONSTRAINT pk_order_status2;
3、相关系统视图:
可以通过相关的系统视图来查看表和约束的定义。
- user_tables:用户表的相关信息
- user_tab_columns:用户表的列信息
- user_constraints:用户表约束相关信息