您的位置:首页 > 其它

INSERT INTO SELECT 和 SELECT INTO 语句的区别

2017-10-26 13:47 387 查看
主要区别

select into from 和 insert into select都是用来复制表,两者的主要区别为: select into from 要求目标表不存在,因为在插入时会自动创建。insert into select from 要求目标表存在。

INSERT INTO SELECT

从原表表复制数据,然后把数据插入到一个已存在的目标表中。目标表中任何已存在的行都不会受影响。

SELECT INTO

从一个表复制数据,然后把数据插入到另一个新表中。

SELECT INTO 语句可用于通过另一种模式创建一个新的空表。只需要添加促使查询没有数据返回的 WHERE 子句即可。

**注意:

在Oracle中select into from不可以使用—–原因很简单:select into是PL/SQL language 的赋值语句!如果使用则Oracle会抛出0RA-00905:missing keyword的异常!

但是可以用create table select代替该功能!!!**

备份表数据: create table Backup2017 as select * from scott.emp

还原表数据:insert into emp select * from scott.emp

复制表结构及其数据:

create table table_name_new as select * from table_name_old

只复制表结构:

create table table_name_new as select * from table_name_old where 1=2;

或者:

create table table_name_new like table_name_old

只复制表数据:

如果两个表结构一样:

insert into table_name_new select * from table_name_old

如果两个表结构不一样:

insert into table_name_new(column1,column2…) select column1,column2… from table_name_old
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据 select