sql中select into和insert select的用法小结

 更新时间:2024年08月09日 11:33:55   作者:积极向上的ACC  
在工作中,我们经常需要备份表,本文主要介绍了sql中select into和insert select的用法小结,具有一定的参考价值,感兴趣的可以了解一下

在工作中,我们经常需要备份表,今天来聊一下备份表用到的sql语句

一、复制表结构及数据

复制表结构及数据有三种方法,不同类型数据库所支持的语法有所不同,下面具体说

1.create table as select ...

这条语句适用于大多数关系型数据,也适用于数据仓库hive。下面我们用MySQL环境去执行(非MySQL有备注)。目标:将t_user的表结构及数据复制到t_user_2中。

先show create table t_user看下t_user的表结构

图片

再查下t_user的数据

图片

将t_user的表结构及数据复制到t_user_2,执行语句:

create table t_user_2 as select * from t_user;

执行完毕后查看表t_user_2

  我们可以看到已经成功把t_user的结构及数据都复制到了t_user_2。

2.select into

SQL Server、Oracle、Greenplum支持select into语法,但MySQL不支持。目标:创建表t_user_3的同时,将t_user的全部数据插入到t_user_3,实现:

select * into t_user_3 from t_user;

注:此条语句是在Greenplum的环境下执行,MySQL不支持select into语法

3.create table like;insert select...;

这条语句可以分成为两部分:

 (1) create table like;

复制表结构,实现:

create table t_user_4 like t_user;

将t_user的表结构复制到t_user_4。

 (2) insert select;

 插入数据,实现:

insert t_user_4 select * from t_user;

  将t_user表的全部数据插入到t_user_4。

合并执行:

create table t_user_4 like t_user;insert t_user_4 select * from t_user;

效果:

图片

二、仅复制表结构

下面来说两种复制表结构的方法。

1.create table like

目标:把t_user表结构复制到t_user_5,实现:

create table t_user_5 like t_user;

效果:

图片

2.create table as

create table as也能单独复制表结构,例如将t_user的表结构复制到t_user_6

create table t_user_6 as select * from t_user where 1=2;

效果:

图片

三、仅复制数据

无需复制表结构,仅复制表数据可以使用insert table select语句,在上面我们创建了表t_user_6,现在想把表t_user的数据全量写入t_user_6,执行sql:

insert t_user_6 select * from t_user;

效果如下,可以看到把t_user的数据都插入到了t_user_6

到此这篇关于sql中select into和insert select的用法小结的文章就介绍到这了,更多相关sql中select into和insert select内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • MySQL函数sysdate()与now()的区别测试用例对比

    MySQL函数sysdate()与now()的区别测试用例对比

    这篇文章主要为大家介绍了MySQL函数sysdate()与now()的区别测试用例对比详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • MySQL存储过程及常用函数代码解析

    MySQL存储过程及常用函数代码解析

    这篇文章主要介绍了MySQL存储过程及常用函数代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • MySQL回表产生的原因和场景

    MySQL回表产生的原因和场景

    在MySQL数据库中,回表(Look Up)指的是在进行索引查询时,首先通过索引定位到对应页,然后再根据行的物理地址找到所需的数据行,本文给大家介绍了MySQL回表是什么以及哪些情况下会回表,需要的朋友可以参考下
    2023-11-11
  • MySQL制作具有千万条测试数据的测试库的方法

    MySQL制作具有千万条测试数据的测试库的方法

    这篇文章主要介绍了MySQL制作具有千万条测试数据的测试库的方法,帮助大家更好的理解和学习MySQL,感兴趣的朋友可以了解下
    2020-11-11
  • mySQL 延迟 查询主表

    mySQL 延迟 查询主表

    在主外键表存在关系的时候如果加上"lazy=true"的话,则表明延迟,即只查询主表中的内容,而不查询外键表中的内容。
    2009-09-09
  • 在MySQL中开启日志记录并排查操作详细步骤记录

    在MySQL中开启日志记录并排查操作详细步骤记录

    MySQL日志管理是数据库系统维护和优化的重要环节,它提供了对服务器运行状态的详细记录,这篇文章主要给大家介绍了关于如何在MySQL中开启日志记录并排查操作的相关资料,需要的朋友可以参考下
    2024-08-08
  • mysql 安全管理详情

    mysql 安全管理详情

    这篇文章主要介绍了mysql 安全管理,MySQL服务器的安全基础是用户应该对他们需要的数据具有适当的访问权,既不能多也不能少,换句话说,用户不能对过多的数据具有过多的访问权,下面俩看看文章详细内容吧
    2021-10-10
  • MySQL详解如何优化查询条件

    MySQL详解如何优化查询条件

    我们知道从MySQL表中使用SELECT语句来查询数据,如需有条件地从表中选取数据,可将WHERE子句添加到SELECT语句中,本篇我们来看看怎样优化查询条件
    2022-05-05
  • mysql数据库乱码之保存越南文乱码解决方法

    mysql数据库乱码之保存越南文乱码解决方法

    做一个包含越南文的网站,用户说在保存包含越南文的文章时,MSYQL乱码了,看下面的解决方法
    2013-12-12
  • mysql中left join设置条件在on与where时的用法区别分析

    mysql中left join设置条件在on与where时的用法区别分析

    这篇文章主要介绍了mysql中left join设置条件在on与where时的用法区别,结合实例形式分析了mysql中left join设置条件在on与where时的相关用法区别与操作注意事项,需要的朋友可以参考下
    2020-02-02

最新评论