运维常用SQL命令(oracle)

运维常用SQL命令(oracle)

复制表结构及表数据:
create table table_name_new as select * from table_name_old

复制表结构:
create table table_name_new like table_name_old

复制表数据:
insert into K20_JDBC_TMP select * from K20_JDBC;


设置为空字段数据为-1:
update K20_JDBC_TMP set JDBCTIME_MS=-1 WHERE JDBCTIME_MS is NULL;

清空表数据:
truncate table K20_JDBC_TMP

重命名表名:
ALTER TABLE old_name RENAME TO new_name
或者
rename table to table_new


添加字段的语法:
alter table tablename add (column datatype [default value][null/not null],….);

alter table K20_JDBC_TMP2 add T1 CHAR(20) default null; //默认允许为空


修改字段的语法:
alter table tablename modify (column datatype [default value][null/not null],….);
alter table K20_JDBC_TMP2 modify T1 CHAR(30) default null;

删除字段的语法:
alter table tablename drop (column);
alter table K20_JDBC_TMP2 drop column T1;


比较两个表数据差异:
select * from B minus select * from A
selecet pno,cno from A minus select pno,cno from B

比较两张表结构相同的表,并将不同的数据插入第三张表中。
insert into K20_JDBC_TMP2(TMZDIFF,WRITETIME,NODE,TIMESTAMP,IP,NODENAME,SERVERNAME,PROVIDERNAME,JDBCNAME,CREATECOUNT,CLOSECOUNT,POOLSIZE,FREEPOOLSIZE,USEDMAX_PCT,JDBCTIME,WAITTIME,USETIME,WAITINGTHREADCOUNT,JDBCTIME_MS,WAITTIME_MS,USETIME_MS) select * from K20_JDBC MINUS SELECT * FROM K20_JDBC_TMP