开发者

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

目录
  • 一、复制表结构及数据
    • 1.create table as select ...
    • 2.select into
    • 3.create tab编程客栈le like;insert select...;
      •  (1) create table like;
      •  (2) insert select;
  • 二、仅复制表结构
    • 1.create table like
      • 2.create table as
      • 三、仅复制数据

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

        一、复制表结构及数据

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

        1.create table as select ...

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

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

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

        再查下t_user的数据

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

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

        create table t_user_2 as select * from t_user;
        

        执行完毕后查看表t_user_2

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

          我们可以看到已经成功把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) inserhttp://www.devze.comt 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;

        效果:

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

        www.devze.com

        二、仅复制表结构

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

        1.crephpate table like

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

        create table t_user_5 like t_user;
        

        效果:

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

        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;

        效果:

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

        三、仅复制数据

        无需复制表结构,仅复制表数据可以使用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的用法小结的文章就介绍到python这了,更多相关sql中select into和insert select内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)! 

        0

        上一篇:

        下一篇:

        精彩评论

        暂无评论...
        验证码 换一张
        取 消

        最新数据库

        数据库排行榜