查询语句生成的数据 直接insert 到表中,无需另外建表 建字段 。
oracle :
create table 表名 as select 语句
sql server (要求表不存在):
select *into table_new from table (from 后面可接查询语句)
用处:
可以做表备份 ,物化视图 ,物化查询语句,快速建立一张新表 等等。
说明: 无需提前把目标表建好,会自动按照数据源 字段类型建立对应目标表。
举个例子:
--sql server 备份表table1:
select * into table_bak from table1
--sql server 将查询内容生成一张表:
select * into table_new from (select * from a where .....)
--根据其他表字段 快速建一个新的空表:
--step1:
select * insert table_new from (select ... from t1 join t2 on .... )
--step2 清空表:
truncate table_new
--这样就得到一个空的 table_new ,避免了手动建表 选择字段类型等的繁琐和可能的错误
扩展:前面提到的是表不存在的情况,如果表存在,往表里追加数据 则用insert into 语句
sql server :
举例:
insert into scorebak select * from socre where neza='neza' --插入一行,要求表scorebak 必须存在