mysql从旧表 取出部分列并保存到新表几种方式介绍


        在MySQL中,从旧表取出部分列并保存到新表有多种方式,主要包括以下几种:
        1. 使用INSERT INTO ... SELECT语句:
        这是最常用的方法。通过SELECT语句从旧表中选择需要的数据,然后使用INSERT INTO语句将数据插入到新表中。这种方式简单易用,可以一次性将所有需要的数据从旧表转移到新表。
例子:


INSERT INTO 新表 (列1, 列2, ...)
SELECT 列1, 列2, ...
FROM 旧表;


        2. 使用CREATE TABLE ... AS SELECT语句:
        这种方法可以创建一个新表,并从旧表中选择数据插入到新表中。这种方式适用于需要创建新表并立即填充数据的情况。使用这种方法,你可以同时指定新表的列名和数据类型。
例子:


CREATE TABLE 新表 AS
SELECT 列1, 列2, ...
FROM 旧表;


        3. 使用中间表:
        这种方法涉及创建一个临时表(中间表),将需要的数据从旧表插入到中间表,然后再将数据从中间表插入到新表。这种方式可以在数据转移过程中进行额外的数据处理,例如数据清洗、转换等。
例子:


-- 创建中间表
CREATE TEMPORARY TABLE 中间表 AS
SELECT 列1, 列2, ...
FROM 旧表;
-- 将数据从中间表插入到新表
INSERT INTO 新表 (列1, 列2, ...)
SELECT 列1, 列2, ...
FROM 中间表;
-- 删除中间表
DROP TEMPORARY TABLE 中间表;


        4. 使用数据导出和导入:
        这种方法涉及将数据从旧表导出到一个文件(例如CSV文件),然后从该文件将数据导入到新表。这种方式可以在数据库之间转移数据,或者在数据量较大时使用。
例子(导出数据到CSV文件):


SELECT 列1, 列2, ...
INTO OUTFILE '/path/to/file.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM 旧表;


例子(从CSV文件导入数据到新表):


LOAD DATA INFILE '/path/to/file.csv'
INTO TABLE 新表
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
(列1, 列2, ...);


        这些方法之间的主要区别在于使用场景和操作复杂性。INSERT INTO ... SELECT语句和CREATE TABLE ... AS SELECT语句比较简单,可以直接在数据库中执行。中间表方法提供了更多的灵活性和控制,可以进行更复杂的数据处理。数据导出和导入方法适用于大型数据集或需要在不同的数据库之间转移数据的情况。


        每种方法都有其优势和特点。INSERT INTO ... SELECT语句和CREATE TABLE ... AS SELECT语句简单易用,可以快速实现数据转移。中间表方法提供了更多的灵活性和控制,可以进行更复杂的数据处理。数据导出和导入方法可以处理大型数据集,并可以在不同的数据库之间转移数据。
        总的来说,选择哪种方法取决于具体的需求和场景。如果只是简单的数据转移,INSERT INTO ... SELECT语句和CREATE TABLE ... AS SELECT语句是不错的选择。如果需要进行复杂的数据处理,中间表方法可能更适合。如果需要处理大型数据集或在不同的数据库之间转移数据,数据导出和导入方法可能更合适。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/435047.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

cesium-切分地图

在cesium中只看想看到的部分地图,其他的隐藏。 做法如下 import {ArrowRight} from element-plus/icons-vue import {onMounted, ref, watch} from "vue"; import * as Cesium from "cesium"; import InitCesium from "../js/InitCesiumH…

快速了解Redis

Redis是什么? Redis是一个数据库,是一个跨平台的非关系型数据库,Redis完全开源,遵守BSD协议。它通过键值对(Key-Value)的形式存储数据。 它与mysql数据库有什么区别? redis通过键值对(Key-Value)的形式存储数据&…

【AI视野·今日Robot 机器人论文速览 第八十三期】Wed, 6 Mar 2024

AI视野今日CS.Robotics 机器人学论文速览 Wed, 6 Mar 2024 Totally 30 papers 👉上期速览✈更多精彩请移步主页 Interesting: 📚SpaceHopper,外星探索多功能三足机器人 (from Robotic Systems Lab, ETH Zurich) Daily Robotics Papers A Safety-Criti…

《探索虚拟与现实的边界:VR与AR谁更能引领未来?》

引言 在当今数字时代,虚拟现实(VR)和增强现实(AR)技术正以惊人的速度发展,并逐渐渗透到我们的日常生活中。它们正在重新定义人与技术、人与环境之间的关系,同时也为各行各业带来了全新的可能性。…

LeetCode刷题---填充每个节点的下一个右侧节点指针 II

题解:LeetCode题解 解题思想: 通过创建辅助指针来解决该问题 当当前节点cur不为空的时候,创建辅助节点dummy,使其一直作为每一层的第一个节点的前一个节点。 创建辅助指针pre,pre初始指向dummy,之后通过pre来填充当前层…

JVM-整体结构原理深度解析

JVM定义 JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 引入Java语言虚拟机后,Java语言在…

Tensorflow2.0笔记 - 常见激活函数sigmoid,tanh和relu

本笔记主要记录常见的三个激活函数sigmoid,tanh和relu,关于激活函数详细的描述,可以参考这里: 详解激活函数(Sigmoid/Tanh/ReLU/Leaky ReLu等) - 知乎 import tensorflow as tf import numpy as nptf.__ve…

spring boot3token拦截器链的设计与实现

⛰️个人主页: 蒾酒 🔥系列专栏:《spring boot实战》 🌊山高路远,行路漫漫,终有归途。 目录 写在前面 流程分析 需要清楚的 实现步骤 1.定义拦截器 2.创建拦截器链配置类 3.配置拦截器链顺序 4.配置拦截…

StarRocks实战——松果出行实时数仓实践

目录 一、背景 二、松果出行实时OLAP的演进 2.1 实时数仓1.0的架构 2.2 实时数仓2.0的架构 2.3 实时数仓3.0的架构 三、StarRocks 的引入 四、StarRocks在松果出行的应用 4.1 在订单业务中的应用 4.2 在车辆方向的应用 4.3 StarRocks “极速统一” 落地 4.4 StarRoc…

设计模式-结构型模式-享元模式

享元模式(Flyweight),运用共享技术有效地支持大量细粒度的对象。[DP] 解决对象的开销问题,像围棋,一盘棋理论上有361个空位可以放棋子,那如果用常规的面向对象方式编程,每盘棋都可能有两三百个…

记录第一次使用QT

今晚和舍友准备搞一个QT网盘的项目,我之前也没有用过QT。在舍友的指导下,我安装了QT creator,然后完成了第一次的QT的编译运行,记录一下这激动的感觉(2024-03-07)。 使用qmake进行的编译。qDebug进行输出调试hello qt…

FedDefender: Client-Side Attack-Tolerant Federated Learning

与现有的大部分方法不同,FedDefender是在客户端层面的防御机制。 方法叠的有点多 大部分方法都在④这一步防御,通过设计鲁邦的聚合策略等,但是本文通过修改本地训练策略,来更新模型,文章主要基于两个观点: …

机器学习的边界与实际应用

目录 前言1 机器学习的广泛适用性1.1. 利用输入输出映射1.2. 大量的可用数据 2 机器学习能做的事情举例2.1 自动驾驶2.2 用户请求处理2.3 有大量数据的医学影像诊断 3 机器学习不能做的事情举例3.1 市场分析报告3.2 感同身受的邮件回复3.3 手势意图判断3.4 少量数据的医学影像诊…

真Unity-Editor二次开发-ScriptableObject 可自定义UI界面

关于ScriptablObject自定义 作为官方指定的,曾经我也吐槽过ScriptableObject很鸡肋,个人曾经也是强烈反对在项目中使用,但直到我今天看到下面这个代码,菜发现其实只是自己太菜鸡而已 --------------不想多写什么 -------------…

无人机生态环境监测、图像处理与GIS数据分析

构建“天空地”一体化监测体系是新形势下生态、环境、水文、农业、林业、气象等资源环境领域的重大需求,无人机生态环境监测在一体化监测体系中扮演着极其重要的角色。通过无人机航空遥感技术可以实现对地表空间要素的立体观测,获取丰富多样的地理空间数…

Java面试篇【JVM】常见面试题(2024最新)

JVM 1. Java内存区域详解 线程私有:程序计数器,虚拟机栈,本地方法栈 线程共享的:堆,方法区,直接内存 1.1 各个区域详解 程序计数器 每个线程需要一个计数器记录自己执行到哪一行了。线程之间切换需要保存…

LVS集群---二

1.LVS工作模式和相关命令 1.1LVS集群工作模式 - lvs-nat:修改请求报文的目标IP,多目标IP的DNAT- lvs-dr:操纵封装新的MAC地址(直接路由)- lvs-tun:隧道模式 1.1.1 LVS的NAT模式 lvs-nat:本质是多目标IP的…

flutter 使用webview

背景: 一般都有使用webview加载网页的需求,比如加载隐私协议、用户协议等。 如何做: 当然,我们自己不用封装轮子,在pub.dev上有成熟的轮子:webview_flutter 首先,将依赖导入,在pub…

MooC下载pdf转为ppt后去除水印方法

1、从MooC下载的课件(一般为pdf文件)可能带有水印,如下图所示: 2、将pdf版课件转为ppt后,同样带有水印,如下图所示: 3、传统从pdf中去除水印方法不通用,未找到有效去除课件pdf方法…

c语言指针基础(中)

指针 assert断言 要想使用assert需要包含头文件<assert.h>&#xff0c;作用是程序在运行时要确定符合某种条件,如果符合程序正常运行,如果不符合,就会报错,停止运行。 例子: int *p; assert(p!NULL)程序运行到assert这条语句时,会判断p是不是空指针,如果不是空指针程序…