SELECT INTO FROM语句、INSERT INTO SELECT FROM语句、CREATE TABLE AS SELECT FROM语句三者区别

首先,这三条语句都可以用来进行数据迁移,即将表1中的数据复制到表2中;

其次依次说一下这三者:

1. SELECT INTO FROM:

  • “全称”:SELECT value1,value2 INTO table2 FROM table1
  • 该语句在复制插入时会自动创建table2,因此要求复制之前table2不存在,直接将table1对应的字段拷贝过来并创建一个新表,名为table2
  • MySQL 数据库不支持该语句(是他说的

2. INSERT INTO SELECT FROM:

  • “全称”:INSERT INTO table2(field1,field2) SELECT value1,value2 FROM table1
  • 从该SQL上面就可以明白这句话的含义:将table1的字段value1、value2取出来,插入到table2中,并可以重命名。因而该语句要求table2存在,而且字段field1,field2也得存在

3. CREATE TABLE AS SELECT FROM:

  • 这个语句有几种不同的情况,但均要求table2不存在:
    1. CREATE TABLE table2 AS SELECT * FROM table1: 这是最简单最常见的,就是将table1结果全部取出后,照原样生成一个table2;
    2. CREATE TABLE table2(name1,name2) AS SELEC value1,value2 FROM table1:复制表table1的部分字段,并且制定列名
    3. CREATE TABLE table2 AS SELECT * FROM table1 WHERE ... : 此时只会复制table1的表结构并创建table2。效果类似于:CREATE TABLE table2 LIKE table1

 

INSERT INTO SELECT FROM & CREATE TABLE AS SELECT FROM的性能差别:

因为二者都可以进行表数据的复制,二者除了一个要求表格事先存在、一个事先不存在之外,差别还体现在性能上。INSERT INTO SELECT FROM是DML(Data Manipulation Language)语句,CREATE TABLE AS SELECT FROM是DDL(Data Definition Language)语句,当复制的数据量较大时,DDL语句效率会优于DML语句,因而大数据量迁移,CREATE TABLE AS SELECT FROM更好。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_illusion_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值