CREATE TABLE ... AS SELECT 与 CREATE TABLE ... LIKE 的相同点和不同点

目录

相同点

不同点


 

相同点

  1. 用于创建新表:两者都是用来根据已有的表结构或数据创建一个新的表。
  2. 结构复制:两种语句都可以从现有表复制列的定义。

不同点

  1. 数据复制

    • CREATE TABLE ... AS SELECT:创建新表的同时,会复制原表中通过SELECT查询得到的数据。
    • CREATE TABLE ... LIKE:只复制表结构,不复制数据。
  2. 索引和表选项

    • CREATE TABLE ... AS SELECT:不会复制原表的索引和特定的表选项。
    • CREATE TABLE ... LIKE:会复制原表的索引和所有的表选项(除了外键约束)。
  3. 默认值和约束

    • CREATE TABLE ... AS SELECT:不会复制原表的默认值设置和约束条件。
    • CREATE TABLE ... LIKE:会复制原表的默认值和约束条件(除了外键约束)。
  4. 自定义能力

    • CREATE TABLE ... AS SELECT:可以通过SELECT语句自定义新表中包含的列和数据。
    • CREATE TABLE ... LIKE:没有自定义能力,新表的结构完全与原表相同。
  5. 使用场景

    • CREATE TABLE ... AS SELECT:适用于需要根据特定查询结果创建表,或者需要表的部分数据的场景。
    • CREATE TABLE ... LIKE:适用于需要快速创建一个与现有表结构相同但空的新表的场景,例如用于测试或作为初始化模板。
  6. 性能

    • CREATE TABLE ... AS SELECT:由于同时进行了数据插入操作,所以可能会比CREATE TABLE ... LIKE慢,尤其是当原表数据量较大时。
    • CREATE TABLE ... LIKE:通常执行得更快,因为它只复制结构而不涉及数据操作。

    综上所述,CREATE TABLE ... AS SELECTCREATE TABLE ... LIKE虽然都用于创建新表,但根据是否需要复制数据、保留索引和表选项以及自定义表结构的需求,会选择不同的语句来满足特定的场景。

 

  • 15
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值