服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Mysql - select into from和insert into select的使用举例详解

select into from和insert into select的使用举例详解

2023-04-25 17:12Spring的思念 Mysql

select into from和insert into select都是用来复制表,下面这篇文章主要给大家介绍了关于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

延伸 · 阅读

精彩推荐