INSERT INTO SELECT 和 SELECT INTO 语句的区别

  1. 主要区别
    select into from 和 insert into select都是用来复制表,两者的主要区别为: select into from 要求目标表不存在,因为在插入时会自动创建。insert into select from 要求目标表存在。
  2. INSERT INTO SELECT
    从原表表复制数据,然后把数据插入到一个已存在的目标表中。目标表中任何已存在的行都不会受影响。

  3. 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值