SELECT INTO , INSERT INTO SELECT 和 CREATE TABLE AS SELECT

  • INSERT INTO SELECT
  • Create table newTable as select * from

复制表的数据,将A表的数据复制到B表中,常见的操作方式有三种:

  1. INSERT INTO SELECT
  2. CREATE TABLE AS SELECT

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的字段外,还可以插入常量。


Create table newTable as select * from

create. as…select,有以下三种方式;

  1. create table table1 as select * from table2 where 1=2;
    创建一个表结构与table2一模一样的表,只复制结构不复制数据;
  2. create table table1 as select * from table2 ;
    创建一个表结构与table2一模一样的表,复制结构同时也复制数据;
  3. create table table1(columns1,columns2) as select columns1,columns2 from table2;
    创建一个表结构与table2一模一样的表,复制结构同时也复制数据,但是指定新表的列名;

create table as是ddl语句,insert into select是dml语句,insert into select每一条记录的时候都会产生undo和redo,整个过程相比create table as产生的redo和undo相当多。当有大量数据的时候不推荐使用Insert into as,因为该语句的插入的效率很慢。

oracle中create table as和insert into select语句相关推荐

  1. Oracle中selec ... into ... from 和 insert into ... select...from区别

    1.语句形式为: Insert into Table2(field1,field2,...) select value1,value2,... from Table1  2.注意地方: (1)要求目标 ...

  2. oracle中create table with as和insert into with as语句

    oracle支持使用with as 子句来创建表 语法: create table table_name as with clause_name as (select query ) [, claus ...

  3. INSERT INTO SELECT语句概述和示例

    This article covers the SQL INSERT INTO SELECT statement along with its syntax, examples and use cas ...

  4. oracle数据库【表复制】insert into select from跟create table as select * from 两种表复制语句区别...

    create table  as select * from和insert into select from两种表复制语句区别 create table targer_table as select ...

  5. db2中create table as的建表方式

    DB2没有类似oracle的create table as select来定义表的方式,所以DB2中把SELECT查询出来的结果定义为别的表比较麻烦! DB2定义表的3种方式: 首先创建一个例子表,再 ...

  6. mysql table as_Mysql中create table as与like命令的区别

    MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性.MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准 ...

  7. mysql insert 主键冲突_在MySql中建立存储过程和解决insert into select 中主键冲突的有关问题...

    首先说需求,我想重复插入大量数据,那么首先想到的,就是用insert into select语句. 但是因为mysql中没有将主键设为自增长,导致每次都会报主键冲突的错误,插入失败. 对于这个问题,就 ...

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

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

  9. 因用了Insert into select语句,同事被开除了!

    " Insert into select 请慎用,同事因为使用了 Insert into select 语句引发了重大生产事故,最后被开除. 作者:不一样的科技宅 https://jueji ...

最新文章

  1. arduino蓝牙通讯代码_「Arduino」OLED屏使用教程,显示内容听谁的?我不管,听我的...
  2. wireshark的使用
  3. cnpm 安装文件找不到_大师操作win7系统电脑软件中找不到已经安装字体的恢复步骤...
  4. k8s:koolshare软路由安装及k8s基本环境配置
  5. [渝粤教育] 西南科技大学 数据库应用 在线考试复习资料
  6. 挖矿病毒解决实例(隐藏进程,文章较好)(入侵)
  7. Android LruCache技术原理
  8. 计算机视觉基础:自适应阈值分割(Computer Vision Fundamentals: Adaptive Threshold Segmentation)
  9. 将Excel数据批量生成条形码
  10. javascript获取上一工作日
  11. linux中dd命令详解,Linux dd命令详解
  12. 大厂技术实现 | 爱奇艺短视频推荐业务中的多目标优化实践 @推荐与计算广告系列
  13. 计算机基础之计算机的前沿技术
  14. 关于前端的CSS命名
  15. (十一)openstack------块存储服务cinder,磁盘(卷)扩容,使用 NFS---后端存储
  16. Go语言之禅 | Gopher Daily (2021.05.06) ʕ◔ϖ◔ʔ
  17. Appium-desktop的下载安装
  18. 不同操作系统进行跑分测试【win、linux】
  19. 精选16个最常用的Java 工具类,每一个都十分有用
  20. SG函数求解 NIM游戏先手必胜必败问题

热门文章

  1. android 7彩蛋,在你的Android手机里吸猫——挖挖Android7.0彩蛋
  2. 文案写作系统_软文新闻写作_写作工具_写作软件平台|Giiso智搜
  3. 计量经济学理论与stata分析 人大范红岗老师
  4. WSAStartup简要说明
  5. Linux(CentOS)下squid代理服务器配置-五岳之巅
  6. 【Oracle VM VirtualBox安装SteamOS 教程】
  7. Python 的优缺点
  8. 到底什么是元宇宙?建立一个虚实融合的数字空间?
  9. Linux学习路线参考
  10. Unity LeanTouch 点击按下抬起事件以及LeanInfoText组件的使用