insert table 和create table as 区别

作者: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 table2wherecolumns1>=1;

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

幸福就是重复。每天跟自己喜欢的人一起,

insert table 和create table as 区别

相关文章:

你感兴趣的文章:

标签云: