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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
- .NET Core系列之MemoryCache 初识
- 007手机一键Root(安机网一键Root) v3.0 官方最新版 一键ROOT您的Android手机
- 12306密码被盗了怎么办?12306密码外泄解决方法
- 12个字的qq网名
- 150M迷你型无线路由器怎么设置?
- 192.168.1.1打不开怎么办?路由器192.168.1.1打不开的原因以及解决办法
- 2011年电子报合订本 电子报 编辑部 中文 PDF版 [84M]
- 2015年1月15日小米新旗舰发布会现场图文直播
- 2016.3.1vivo Xplay5新品发布会现场视频直播 优酷直播
- 2016华为P9发布会视频直播地址 4月15日华为P9国行发布会直播