码迷,mamicode.com
首页 > 其他好文 > 详细

insert table 和create table as 区别

时间:2015-02-15 12:15:02      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:

作者:iamlaosong

首先,最大的区别是二者属于不同类型的语句,前者是DML语句(数据操作语言,SQL中处理数据等操作统称为数据操纵语言),完成后需要提交才能生效,后者是DDL语句(数据定义语言,用于定义和管理 SQL 数据库中的所有对象的语言 ),执行完直接生效,不提供回滚,效率比较高。其次,功能不同,前者只是插入数据,必须先建表;后者则建表和插入数据一块完成。

insert  into  table1(columns1,columns2) select  columns1,columns2  from  table2;
从table2中查询的结果插入到table1中,前提是table1和table2已经存在;
 
 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(columns_a,columns_b) as select  columns1,columns2  from table2; 
创建一个表结构与table2一模一样的表,复制结构同时也复制数据,但是指定新表的列名,这种格式也用于复制table2部分字段;

后面两种格式,如果后面跟上合适的查询条件,可以只复制符合条件的数据到新的表中,例如:

create  table table1  as  select *   from table2  where columns1>=1;

可能的情况下,建议用第二种方式,这种方式不仅能一次完成建表和插入数据,而且效率高,特别是当复制的数据量比较大时,可以避免大量数据存在回滚空间中等待提交。


insert table 和create table as 区别

标签:

原文地址:http://blog.csdn.net/iamlaosong/article/details/43833689

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!