⑴ insert into table_name [(column[,column...])] select_statement
每次只能插入一个表,但性能上比写多条insert语句要高。另外,Oracle还提供create table table_name as select ...,as不可少!实现直接创建并且插入表,依赖于后面的select语句的结果,如:create table new_table as select * from source_table where 1=0
案例:
表mxt新增一列time,那么这个列会被置在最后,现想把此列放于第2
create table copy_mxt as select id,time,name from mxt;
drop table mxt;
rname copy_mxt to mxt;
:
类型:
① 无条件的insert
② 带条件的insert all
③ 带条件的insert first
④ pivoting insert
多表insert的使用限制:
① 只能对table使用insert,不能对视图或物化视图使用
② 不能对远程表使用这个插入操作
③ 多表插入时,不能指定一个表的集操作
④ 多表insert的into的目标表加在一起的列数不能超过999
㈠ 语法:
insert all
into dest_table1 [column(,column...)] [values (...)]
into dest_table2 [column(,column...)] [values (...)]
...
select_statement --values中指定是select结果列,如果没有values指定列,那么表示目标表的列类型和顺序与select语句查询的结果完全一致。建议不要省略目标表中的列和values,增强可读性。
例子: