select into from和insert into select的使用举例详解
1. SELECT INTO 语句
用途:SELECT INTO 语句从一个表复制数据,然后把数据插入到另一个新表中,表结构与查询结构一致。
PS:MySQL不支持SELECT INTO语法。
1.1 SELECT INTO 语法
复制所有的列插入到新表中。
?1 2 3 | SELECT * INTO newtable FROM table1; |
或者只复制希望的列插入到新表中:
?1 2 3 | SELECT column_name(s) INTO newtable FROM table1; |
提示:新表将会使用 SELECT 语句中定义的列名称和类型进行创建。以使用 AS 子句来应用新名称。
2. INSERT INTO SELECT 语句
INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中。
2.1 INSERT INTO SELECT 语法
从一个表中复制所有的列插入到另一个已存在的表中:
?1 2 | INSERT INTO table2 SELECT * FROM table1; |
只复制希望的列插入到另一个已存在的表中:
?1 2 3 4 | INSERT INTO table2 (column_name(s)) SELECT column_name(s) FROM table1; |
3. select into from 和 insert into select 区别
select into from 要求目标表不存在,因为在插入时会自动创建;
insert into select from 要求目标表存在。
4. 复制表结构及其数据
?1 2 3 | create table table_name_new as select * from table_name_old; |
5.只复制表结构
原理就是使得where后边条件为假。
?1 | create table table_name_new as select * from table_name_old where 1=2; |
或者
?1 | create table table_name_new like table_name_old; |
6.只复制表数据
6.1 两个表结构一样
?1 | insert into table_name_new select * from table_name_old; |
6.2 两个表结构不一样
?1 | insert into table_name_new(column1,column2...) select column1,column2... from table_name_old; |
只能插入相同字段数据。
总结
到此这篇关于select into from和insert into select使用的文章就介绍到这了,更多相关select into from和insert into select内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://blog.csdn.net/MissOfSpring/article/details/128013375
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。