一、Oracle数据库中,把一张表的查询结果直接生成并导入一张新表中。
![Oracle中把一个查询结果插入到一张表中](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
例如:现有只有A表,查询A表,并且把结果导入B表中。使用如下SQL语句:
![Oracle中把一个查询结果插入到一张表中](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
create table b as select
*
from a
![Oracle中把一个查询结果插入到一张表中](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
二、Oracle数据库中支持把查询结果导入到另外一张表中。
![Oracle中把一个查询结果插入到一张表中](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
例如:有两个表A和B
![Oracle中把一个查询结果插入到一张表中](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
1
)如果两个表的表结构是否相同,但要插入的字段类型相同:
![Oracle中把一个查询结果插入到一张表中](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
(
1
)把A表的全部字段数据插入到B表中:
insert into B select
*
from A;
![Oracle中把一个查询结果插入到一张表中](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
(
2
)把A表中某些字段的数据插入B表中:
insert into B(字段名)(select 字段名 from A)
![Oracle中把一个查询结果插入到一张表中](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
2
)如果不在同一个schema下请在表名前加上schema,例如有schema a和b:
![Oracle中把一个查询结果插入到一张表中](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
insert into b.B select
*
from a.A
三、在jdbc中,还可以把一个表部分字段插入到另一个表中。
insert into p_person(name,age,job) select name,?,job from p_person1 where id = ? -- 第一个?可以按照需要进行设值,而不是表示它是p_person1字段名
![Oracle中把一个查询结果插入到一张表中](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![Oracle中把一个查询结果插入到一张表中](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![Oracle中把一个查询结果插入到一张表中](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![Oracle中把一个查询结果插入到一张表中](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![Oracle中把一个查询结果插入到一张表中](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![Oracle中把一个查询结果插入到一张表中](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![Oracle中把一个查询结果插入到一张表中](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![Oracle中把一个查询结果插入到一张表中](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![Oracle中把一个查询结果插入到一张表中](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![Oracle中把一个查询结果插入到一张表中](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![Oracle中把一个查询结果插入到一张表中](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![Oracle中把一个查询结果插入到一张表中](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![Oracle中把一个查询结果插入到一张表中](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![Oracle中把一个查询结果插入到一张表中](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![Oracle中把一个查询结果插入到一张表中](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![Oracle中把一个查询结果插入到一张表中](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![Oracle中把一个查询结果插入到一张表中](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![Oracle中把一个查询结果插入到一张表中](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![Oracle中把一个查询结果插入到一张表中](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![Oracle中把一个查询结果插入到一张表中](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
三、在jdbc中,还可以把一个表部分字段插入到另一个表中。
insert into p_person(name,age,job) select name,?,job from p_person1 where id = ? -- 第一个?可以按照需要进行设值,而不是表示它是p_person1字段名
转载于:https://blog.51cto.com/bsbforever/1593771