一、oracle最基本的建表语句以及表的声明还有删除等操作
1、创建普通表
CREATE TABLEtableName (列名 字段类型);
2、表结构复制方式创建表(主键索引之类的不复制)
createtabletableName1 as select * from tableName2 where 1=2;
3、 表结构以及数据复制方式创建表(主键索引之类的不复制)
create table tableName1 as select * from tableName2
4、表的删除与截断
DROP TABLE tableName --删除表的所有行,同时删除表定义,无法回退,不允许有where条件,不会触发与表相关的触发器,并释放所占空间
TRUNCATE TABLE tablename --能够删除表的所有行,同时保持表的定义不变,无法回滚,不允许有where条件,空间占用最小磁盘区块,高水线回到最初位置。
如果是整理表的碎片,可以使用TRUNCATE跟上REUSE STORAGE
DELETE FROM tablename --全删除或有条件的删除, 同时保持表的定义不变,并且可以回退,高水线不变,空间不会释放
5、共有同义词的创建以及删除,私有的话就是缺少一个public
create public synonym tableNamefor ZHT.tableName;
DROP public synonymtableName
6、表声明以及字段声明
COMMENT ON TABLESSM_USER_INFO IS '用户表';
COMMENT ON COLUMNSSM_USER_INFO.ID_USER_INFO IS '主键';
7、表的授权
grant select,update,delete,insert on SCOTT.TABLENAME to username;
二、 Oracle建表索引(正常情况下,是否走索引是根据oracle的统计信息进行判断SQL的执行计划,根据SQL的where条件中的字段内容)
1、普通单列索引
CREATE INDEXIX_USER_NAME ON tableName(列名);
2、唯一索引
CREATE UNIQUE INDEXUX_USER_NAME ON tableName(字段名);
3、复合索引也叫联合索引
CREATE INDEX IX_USER_NAME ON tableName(列名1,列名2);
PS:(本文只针对最基本的数据表,分区表请参见另一篇博客) 表分区以及基本操作