select into from 和 insert into select的区别

目录

  • 一、区别解释
        • [1、select into from :将查询出来的数据整理到一张新表中保存,表结构与查询结构一致。](#1、select into from :将查询出来的数据整理到一张新表中保存,表结构与查询结构一致。)
        • [2、insert into select :为已经存在的表批量添加新数据。](#2、insert into select :为已经存在的表批量添加新数据。)
  • 二、举例详解

一、区别解释

1、select into from :将查询出来的数据整理到一张新表中保存,表结构与查询结构一致。
sql 复制代码
select *(查询出来的结果) into newtable(新的表名)from where (后续条件)

即,查询出来结果--->复制一张同结构的空表--->将数据拷贝进去。

2、insert into select :为已经存在的表批量添加新数据。
sql 复制代码
insert into  (准备好的表) select *(或者取用自己想要的结构)from 表名 where 各种条件

即,指定一张想要插入数据的表格--->对数据进行加工筛选--->填入一张准备好的表格。

二、举例详解

select into from 和 insert into select 都是用来复制表

两者的主要区别为: select into from 要求目标表不存在,因为在插入时会自动创建;insert into select from 要求目标表存在。

  1. 复制表结构及其数据:
sql 复制代码
create table table_name_new as select * from table_name_old
  1. 只复制表结构:
sql 复制代码
create table table_name_new as select * from table_name_old where 1=2;

或者:

sql 复制代码
create table table_name_new like table_name_old
  1. 只复制表数据:

如果两个表结构一样:

sql 复制代码
insert into table_name_new select * from table_name_old

如果两个表结构不一样:

sql 复制代码
insert into table_name_new(column1,column2...) select column1,column2... from table_name_old
相关推荐
Insist7531 分钟前
Kingbase--单机部署完整流程
运维·数据库
咖啡の猫3 分钟前
Redis命令-Set命令
数据库·chrome·redis
天涯明月19938 分钟前
服务网格完全指南:从基础概念到生产实践
java·服务器·数据库·分布式·微服务
Han.miracle12 分钟前
万字详解 Lombok 构造方法注解:@AllArgsConstructor 非空校验实现与最佳实践
java·前端·数据库
吠品16 分钟前
SQL Server 2012日志文件管理:解决过大问题的全面指南
服务器·数据库·oracle
熙胤18 分钟前
【MySQL】数据库和表的操作
数据库·mysql·oracle
掘根18 分钟前
【即时通讯系统】环境搭建7——ODB
数据库·oracle
要开心吖ZSH23 分钟前
关于Redis的持久化方式(RDB、AOF)
数据库·redis·缓存
umeelove3524 分钟前
使用 Qt 插件和 SQLCipher 实现 SQLite 数据库加密与解密
数据库·qt·sqlite
不爱学英文的码字机器25 分钟前
毫秒级破局:金仓数据库“连接条件下推”破解SQL性能困局
数据库·oracle