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/MariaDB的Root密码重置教程

    MySQL/MariaDB的Root密码重置教程

    这篇文章主要给大家介绍了关于MySQL/MariaDB的Root密码重置的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-09-09
  • MySQL表数据文件损坏导致数据库无法启动的原因与解决方案

    MySQL表数据文件损坏导致数据库无法启动的原因与解决方案

    在日常的数据库管理中,遇到MySQL表数据文件损坏的情况并不罕见,这种情况下,MySQL数据库可能会无法正常启动,给业务运行带来严重影响,本文将探讨如何诊断和解决MySQL表数据文件损坏导致的数据库无法启动问题,需要的朋友可以参考下
    2025-03-03
  • MySQL replace函数替换字符串语句的用法

    MySQL replace函数替换字符串语句的用法

    MySQL replace函数我们经常用到,下面就为您详细介绍MySQL replace函数的用法,希望对您学习MySQL replace函数方面能有所启迪。
    2010-12-12
  • MySQL8.4实现RPM部署指南

    MySQL8.4实现RPM部署指南

    MySQL8.4是一个稳定和高性能的关系型数据库管理系统,本文主要介绍了MySQL8.4实现RPM部署指南,具有一定的参考价值,感兴趣的可以了解一下
    2024-06-06
  • MySQL如何获取当前时间与日期间隔

    MySQL如何获取当前时间与日期间隔

    这篇文章主要介绍了MySQL如何获取当前时间与日期间隔问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • percona-toolkit对MySQL的复制和监控类操作教程

    percona-toolkit对MySQL的复制和监控类操作教程

    这篇文章主要介绍了使用percona-toolkit对MySQL进行复制和监控类操作的教程,percona-toolkit是一款强大的MySQL辅助软件,需要的朋友可以参考下
    2015-11-11
  • mysql 使用inet_aton和inet_ntoa处理ip地址数据的实例

    mysql 使用inet_aton和inet_ntoa处理ip地址数据的实例

    下面小编就为大家带来一篇mysql 使用inet_aton和inet_ntoa处理ip地址数据的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • Mysql5.5安装配置方法及中文乱码的快速解决方法

    Mysql5.5安装配置方法及中文乱码的快速解决方法

    这篇文章主要介绍了Mysql5.5安装配置方法以及mysql5.5中文乱码的快速解决方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-08-08
  • clickhouse分布式表的操作示例详解

    clickhouse分布式表的操作示例详解

    这篇文章主要为大家介绍了clickhouse分布式表的操作示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • MySQL查看版本的五种方法总结

    MySQL查看版本的五种方法总结

    在日常项目开发过程中,我们经常要连接自己的数据库,此时不知道数据库的版本是万万不可的,下面这篇文章主要给大家介绍了关于MySQL查看版本的五种方法,需要的朋友可以参考下
    2023-02-02

最新评论