我们经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECT INTO 和 INSERT INTO SELECT 表复制语句了。

1、INSERT INTO SELECT语句

语句形式为:Insert into Table2(field1,field2,…) select value1,value2,… from Table1

注意:(1)要求目标表Table2必须存在,并且字段field,field2…也必须存在

(2)注意Table2的主键约束,如果Table2有主键而且不为空,则 field1, field2…中必须包括主键

(3)注意语法,不要加values,和插入一条数据的sql混了,不要写成:

Insert into Table2(field1,field2,…) values (select value1,value2,… from Table1)

由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量。示例如下:

+ expand sourceview plaincopy to clipboardprint

--1.创建测试表

create TABLE Table1

a varchar(10),

b varchar(10),

c varchar(10)

create TABLE Table2

a varchar(10),

c varchar(10),

d int

--2.创建测试数据

Insert into Table1 values('赵','asds','90')

Insert into Table1 values('钱','asds','100')

Insert into Table1 values('孙','asds','80')

Insert into Table1 values('李','asds',null)

select * from Table2

--3.INSERT INTO SELECT语句复制表数据

Insert into Table2(a, c, d) select a,c,5 from Table1

--4.显示更新后的结果

select * from Table2

--5.删除测试表

drop TABLE Table1

drop TABLE Table2

2、SELECT INTO FROM语句

语句形式为:SELECT vale1, value2 into Table2 from Table1

要求目标表Table2不存在,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中 。示例如下:

view plaincopy to clipboardprint?

--1.创建测试表

create TABLE Table1

a varchar(10),

b varchar(10),

c varchar(10)

--2.创建测试数据

Insert into Table1 values('赵','asds','90')

Insert into Table1 values('钱','asds','100')

Insert into Table1 values('孙','asds','80')

Insert into Table1 values('李','asds',null)

--3.SELECT INTO FROM语句创建表Table2并复制数据

select a,c INTO Table2 from Table1

--4.显示更新后的结果

select * from Table2

--5.删除测试表

drop TABLE Table1

drop TABLE Table2

注意:如果在sql/plus或者PL/SQL执行这条语句,会报"ORA-00905:缺失关键字"错误,原因是PL/Sql与T-SQL的区别。

T-SQL中该句正常,但PL/SQL中解释是:

selectinto is part of PL/SQL language which means you have to use it inside a PL/SQL block. You can not use it in a SQL statement outside of PL/SQL.

即不能单独作为一条sql语句执行,一般在PL/SQL程序块(block)中使用。

如果想在PL/SQL中实现该功能,可使用Create table newTable as select * from …:

如: create table NewTable as select * from ATable;

oracle视频教程请关注:http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html

转载于:https://blog.51cto.com/19880614/1279833

SELECT INTO 和 replace into SELECT相关推荐

  1. SELECT INTO 和 replace into SELECT 两种表复制语句

    SELECT INTO 和 INSERT INTO SELECT 两种表复制语句 Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) valu ...

  2. oracle中replace into,oracle SELECT INTO 和 replace into SELECT 两种表复制语句详解

    我们经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECT INTO和INSERT INTO ...

  3. mysql select语法_MySQL SELECT语法(一)SELECT语法详解

    SELECT的语法如下: SELECT[ALL | DISTINCT | DISTINCTROW ] [HIGH_PRIORITY] [STRAIGHT_JOIN] [SQL_SMALL_RESULT ...

  4. SELECT INTO 和 INSERT INTO SELECT 两种表复制语句

    SELECT INTO 和 INSERT INTO SELECT 两种表复制语句 Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) valu ...

  5. select count(*) from temp 与select count(1) from temp有什么区别

    select count(*) from temp 与select count(1) from temp有什么区别 ----count(*)是整个表中有多少条记录,扫描的是整个表 ---- ----c ...

  6. mysql select a b_MySQL-mysql中,select a,b 与 select *效率到底差多少?

    这个效率是多个方面的,其实你要完整的来看: select * from table where 1; select a1 from table where 1; 这两个表面上来看是得到相同的结果,但是 ...

  7. SQL Server 中 SELECT INTO 和 INSERT INTO SELECT语句的区别

    SQL Server 中 SELECT INTO 和 INSERT INTO SELECT语句的区别 我们在写存储过程的时候经常会遇到需要将查询到的数据存到一张表里面的情况,如将一个table1的数据 ...

  8. SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解(SQL数据库和Oracle数据库的区别)...

    我们经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECT INTO 和 INSERT INT ...

  9. mysql select符合查询_数据库select group by 和having语句 多表连接查询 复合查询

    1.SELECT --group by 子句 group by子句按照指定的列column_name对表数据进行分组 group by 后面跟的列也叫分组特性列 使用group by后,能选择的列   ...

  10. oracle数据库的select,Oracle数据库--基本的select语句

    1. 基本select语句 1)查看当前用户 show user USER 为 "SCOTT" 2)查询当前用户下的表 SQL> select * from tab; TNA ...

最新文章

  1. Bug 是一门艺术 | 每日趣闻
  2. c语言if(!k1)x=1,C语言选择题题库2
  3. 两直线平行交叉相乘_人教版初中数学七年级下册 平行线判定2公开课优质课课件教案视频...
  4. 【SRM-07 D】天才麻将少女KPM
  5. 解决看网课鼠标不能移开,视频不能加速
  6. XTU 设置教程 自动化 睡眠 休眠
  7. 记录ESP32 出现未定义vTaskGetRunTimeStats的奔溃时刻!
  8. 尚医通项目101-123:前台用户系统、登录注册、邮箱登录
  9. Ant Design select下拉框突然拉长
  10. html有哪些好玩的地方,武汉本地好玩的地方有哪些?盘点武汉十大必看景点
  11. QT 单个窗口实现多页面切换
  12. 哪些工具可以让嵌入式开发事半功倍?详细盘点嵌入式工程师必备工具!
  13. ALCNet——红外小目标检测网络论文阅读
  14. win10恢复linux引导文件,easybcd误删Win10启动项,UEFI恢复引导
  15. CH579 Cortex-M0 内核低功耗蓝牙 MCU 集成 ARM 内核 32 位微控制器
  16. 物联网主流技术及其应用场景分析
  17. Tomcat的安装和启动
  18. GSM手机卡头不安全,可轻易复制来使用
  19. 2020-10-08 吴恩达-C4 卷积神经网络-w2 CNN实例探究(课后编程1-Keras tutorial - the Happy House-笑脸识别)
  20. PCIe学习(二):PCIe DMA关键模块分析之一

热门文章

  1. NHibernate one-to-one 关系的几点说明
  2. HDU 1234- 开门人和关门人
  3. 【观点】失败应聘的五大原因
  4. 中国经济真相:跑了 1135 家制造企业,我终于明白什么叫自己玩死自己(转)...
  5. 'System.Data.SqlClient' could not be loaded解决办法
  6. Hibernate缓存研究
  7. Javascript封装
  8. extjs中rowEditing动态编辑
  9. NOI2004 郁闷的出纳员 splay
  10. PHP按上下级层次关系输出内容