创建一个新表并复制另一个表的结构和数据到这张表

CREATE TABLE 新建的表名
AS
SELECT * FROM  已经存在的表的表名

其中 AS 可以省略,需要复制指定列结构和数据的时候可以将 * 切换为具体的列名,与一般的 SELECT 查询指定字段写法一致。

SELECT INTO 复制一个表数据到另一张表

(MYSQL 不支持该写法,但支持INSERT INTO … SELECT)

语法示例

  1. 复制所有列数据(可以当作备份操作)
SELECT * INTO 新表表名 FROM 源表表名;
  1. 复制指定列数据
SELECT name, sex INTO 新表表名 FROM 源表表名;
  1. 复制源表指定条件的数据
SELECT * INTO 新表表名 FROM 源表表名 WHERE 源表需要符合的条件;

条件就是一般的 某个字段等于某某某 等条件。

  1. 复制多个表的数据到一张表内
SELECT 源表表名.源表字段1, 源表2表名.字段1, 源表2表名.源表2字段2INTO 新表表名
FROM 源表表名
LEFT JOIN 源表2表名ON 源表表名.id=源表2表名.pid;
  1. 使用 SELECT INTO 创建一个新的空表。只需添加使查询没有数据返回的 WHERE 子句即可,例如:
SELECT * INTO 新表表名 FROM 源表表名 WHERE 0=1;

因为 0=1 永不成立,所以无数据返回,则只复制表结构,创建空表。

INSERT INTO … SELECT 从一个表复制数据,把数据插入到一个已存在的表中

  1. 复制一个表的所有数据到另一个已存在的表
INSERT INTO table2 SELECT * FROM table1;
  1. 复制指定的列数据到另一个已存在的表中
INSERT INTO table2 (column_name(s)) SELECT column_name(s) FROM table1;

示例:

INSERT INTO table2 (name, sex) SELECT wname, sex FROM table1;

添加条件则如下示例:

INSERT INTO table2 (name, sex) SELECT wname, sex FROM table1 WHERE id=10;

区分

select into from 和 insert into select 都可以用来复制表

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

  1. 复制表结构及其数据:
    create table table_name_new as select * from table_name_old
  2. 只复制表结构:
    create table table_name_new as select * from table_name_old where 1=2;
    或者:
    create table table_name_new like table_name_old
  3. 只复制表数据:
    如果两个表结构一样:

insert into table_name_new select * from table_name_old
如果两个表结构不一样:

insert into table_name_new(column1,column2…) select column1,column2… from table_name_old

部分总结来源于各大学习网站

SQL积累 复制一个表数据到另一个表 SELECT INTO -- INSERT INTO ... SELECT相关推荐

  1. sql server 快照_添加新文章,删除文章,更改快照文件夹路径和SQL Server复制中的数据筛选器行

    sql server 快照 In the last articles, we have learned Configuring Snapshot and Transactional SQL Serve ...

  2. mysql 将a表数据插入b表_查询A表数据插入到B表中 sql

    前言: 最近遇到一个 查询A表数据插入到B表中sql的问 所以就发文章记录下,希望能帮助到家 开发环境 win10专业版本(其他操作系统具体安装mysql请百度 ) 准备工作: 安装MySQL 1 m ...

  3. 用sql语句复制表格或数据

    用sql语句复制表格或数据 用sql语句复制表格时,都不会复制primary key等属性 通用(MySQL,SQL Server,Oracle,Sqlite...) 复制数据 MySql 复制表格及 ...

  4. 读取指定文件夹里多个excel表,并将所有excel表数据整合到一个excel中

    1.找出指定文件夹里的所有文件 #-*- encoding: utf-8 -*-# 找出指定文件夹里的所有文件 import osfilePath = 'C:\\Users\\lzk\\Desktop ...

  5. oracle删除库里的所有表,清空mysql指定库里全部表数据-自动删除所有表,有外键约束的表优先删除...

    清空mysql指定库里所有表数据-自动删除所有表,有外键约束的表优先删除 由于要清空数据库数据 ,手动非常麻烦.网上找了一下,有一个Oracle的,参照它,在其上修改一下用于Mysql,把代码奉献如下 ...

  6. 如何将分表汇总到总表_Excel如何实现将动态的分表数据汇总到总表

    将分表数据汇总到总表,需要支持动态更新,这绝对是职场应用中的痛点.很多高手都是用VBA宏代码来搞定,代码难写,不易修改,也不太灵活.事实上,Excel自带的功能就能解决. 分析:解决这个问题最多的方法 ...

  7. java实现将A表数据转移到B表_解决用B表跟新A表数据,如果A表中没有,则把B表的数据插入A表(merge into)...

    作用:merge into 解决用B表跟新A表数据,如果A表中没有,则把B表的数据插入A表: 语法: MERGE INTO [your table-name] [rename your table h ...

  8. sql 两表数据合并_多表查询SQL语句

    本篇文章中主要讲述以下内容: 一.表的加法 合并两张表的过程: 然后运用sql语句: select 课程号,课程名称 from course union select 课程号,课程名称 from co ...

  9. 把多个excel表数据合并到一个工作簿中怎么操作

    1.如下图含有两个工作表,工资表含有姓名.年龄.工资等信息,信息表含有姓名.身份证号码.出生日期信息.现在想要将这两个表格相同姓名员工数据合并到一个表中. ​ ​ 2.点击下图选项(Excel工具箱, ...

最新文章

  1. Combo box的使用
  2. 【Webkit Blog翻译】深入研究WebRTC | 内有福利
  3. MySQL 中and 与or的优先级
  4. java thread 内存泄露_Java ThreadLocal 内存泄露问题分析及解决方法。
  5. 第六章 Qt布局管理器Layout
  6. 团队建设及管理上的举措_为什么在副项目上工作是您作为开发人员的最佳举措...
  7. Mr.J--JavaScript-恶搞小代码
  8. (文中有惊喜)走进云时代的数据库
  9. 浅谈linux系统下常见的故障与处理方法
  10. 关于HTML+CSS3的一些笔记
  11. 为何要搭建大数据分析平台
  12. android5.1 不生成odex的方法
  13. 集成ahci驱动的xp系统_IDE转AHCI模式 for win7+SSD
  14. sps的process插件安装包_什么是Process插件?在中介和调节效应分析中有哪些优势和不足?如何下载与安装?...
  15. 最新投影圣经投影赞美诗歌圣经诗歌2020
  16. 全自动抠图换背景软件下载_智能抠图换背景软件-手挥自动背景更换软件
  17. 毕业设计之 --- 新闻分类系统
  18. Python中7种随机函数总结
  19. 笔记本连接显示器后没有声音
  20. 基于宜搭的《T恤尺码收集》应用搭建

热门文章

  1. Android、APP、APK 、华为报感染病毒 a.gray.Bulimia.a 已解决 (精)
  2. 学习臧圩人Java面试题解惑系列总结
  3. 天境生物启动A股上市辅导:已实现盈利,臧敬五不再是主要股东?
  4. NXOPEN/UG二次开发C#---导入igs文件,获得导入的TaggedObject
  5. spring-boot-starter 自定义
  6. 给openWrt安装管理界面中文包,顺带安装新界面风格,亲测有效
  7. MySQL省市区自联表,拿走不谢!!!
  8. tableviewCell复用 重叠问题
  9. 2021年中国旅游产业整体现状分析,疫情后市场恢复不及预期,相较疫情前仍有差距「图」
  10. BUUCTF 派大星的烦恼