Oracle11G-SQL开发指南-10-创建表、序列、索引和视图。
1. 表table
a> 创建表 CREATE TABLE
b> 获取表信息 user_tables
c> 获取表中列信息 user_tab_columns\ all_tab_columns
d> 修改表 ALTER TABLE
添加列: ALTER TABLE table_name ADD col_name col_type ;
添加虚拟列: 虚拟列只能引用表中已有的其他列
修改列: ALTER TABLE table_name MODIFY col_name col_type ;
修改列的默认值: ALTER TABLE table_name MODIFY col_name DEFAULT default_value ;
删除列: ALTER TABLE table_name DROP COLUMN col_name ;
增加约束: ALTER TABLE table_name ADD CONSTRAINT constraint_name [ CHECK|NOT NULL| FROEIGN KEY | UNIQUE ] ( col_name ) ;删除约束: ALTER TABLE table_name DROP CONSTRAINT constraint_name ;
禁用约束: ALTER TABLE table_name DISABLE CONSTRAINT constraint_name ;
启用约束: ALTER TABLE table_name ENABLE CONSTRAINT constraint_name ;
延迟约束: ... deferrable initially deferred; 提交时检查约束
获取约束信息: USER_CONSTRAINTS ALL_CONSTRAINTS
获取列约束信息: USER_CONS_COLUMNS ALL_CON_COLUMNS
e> 重命名表 RENAME old_table_name TO new_bable_name ;
f> 添加注释
表: COMMENT ON TABLE table_name IS 'comments';
查看注释: user_tab_comments
列: COMMENT ON COLUMN table_name.column IS 'comments';
查看注释: user_col_comments
g> 截断表 TRUNCATE TABLE table_name ; 清除表中所有数据,重置表的存储空间;
h> 删除列 DROP TABLE table_name ;
2. 序列sequence
a> 创建序列 CREATE SEQUENCE sequence_name ...
b> 查看序列信息 user_sequences all_sequences
c> 使用序列 sequence_name.nextval
d> 修改序列 ALTER SEQUENCE sequence_name ...
e> 删除序列 DROP SEQUENCE sequence_name ;
3. 索引 index
CREATE [UNIQUE] INDEX index_nameON table_name (col_name [,col_name... ])
[TABLESPACE tab_space ];
a> 创建(B-树)索引
b> 创建基于函数的索引
c> 获取索引信息 user_indexes all_indexes all_ind_columns
d> 重命名索引 ALTER INDEX name1 RENAME TO name2 ;
e> 删除索引: DROP INDEX index_name ;
f> 创建位图索引 CREATE BITMAP INDEX index_name ON table_name(col_name);
4. 视图 view
CREATE [ OR REPLACE ] VIEW [{ FORCE | NOFORCE}] VIEW view_name[(alias_name [, alias_name ...])] AS subquery
[WITH {CHECK OPTION | READ ONLY } CONSTRAINT constraint_name];
有创建视图的权限 GRANT CREATE VIEW TO user_name;
视图有两种,简单(单一表)和复杂(多表)
默认对简单视图可以执行DML操作,复杂视图不支持DML操作。
查看视图 user_views all_views
查看视图的约束信息 user_constraints
5. 闪回数据归档