mysql 从一个表中查数据并插入另一个表实现方法

mysql 从一个表中查数据并插入另一个表实现方法

不管是在网站开发还是在应用程序开发中,我们经常会碰到需要将MySQL或MS SQLServer某个表的数据批量导入到另一个表的情况,甚至有时还需要指定导入字段。

本文就将以MySQL数据库为例,介绍如何通过SQL命令行将某个表的所有数据或指定字段的数据,导入到目标表 中。此方法对于SQLServer数据库,也就是T-SQL来说,同样适用 。

类别一、 如果两张张表(导出表和目标表)的字段一致,并且希望插入全部数据,可以用这种方法:

INSERT INTO  目标表  SELECT  * FROM  来源表 ;

例如,要将 articles 表插入到 newArticles 表中,则可以通过如下SQL语句实现:

INSERT INTO  newArticles  SELECT  * FROM  articles ;

类别二、 如果只希望导入指定字段,可以用这种方法:

INSERT INTO  目标表 (字段1, 字段2, ...)  SELECT   字段1, 字段2, ...   FROM  来源表 ;

请注意以上两表的字段必须一致,否则会出现数据转换错误。

INSERT INTO TPersonnelChange(
   UserId,
   DepId,
   SubDepId,
   PostionType,
   AuthorityId,
   ChangeDateS,
   InsertDate,
   UpdateDate,
   SakuseiSyaId
 )SELECT
   UserId,
   DepId,
   SubDepId,
   PostionType,
   AuthorityId,
   DATE_FORMAT(EmployDate, '%Y%m%d'),
   NOW(),
   NOW(),
   1
FROM
   TUserMst WHERE
   `Status` = 0
AND QuitFlg = 0
AND UserId > 2

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

(0)

相关推荐

  • 解决mysql创建数据库后出现:Access denied for user 'root'@'%' to database 'xxx'的问题

    前言 最近在工作中遇到一个问题,在创建数据库后连接数据库的时候居然报错了,错误代码是Access denied for user 'root'@'%' to database 'xxx',通过查找相关的资料终于解决了这个问题,所以想着总结下来分享给有需要的朋友们参考学习,下面来一起看看吧. 解决过程 1.创建数据库 create database mytest; 2.连接数据库,报以下错: Access denied for user 'root'@'%' to database 'mytest

  • Linux/Mac MySQL忘记密码怎么办

    Linux/Mac MySQL忘记密码怎么办?不用担心,下面为大家介绍命令行修改密码. 所有的前提都需要获取到root权限 1.结束mysql进程 //Linux sudo services mysql stop //Mac brew services stop mysql 2.mysql后台运行 mysqld_safe --skip-grant-tables & mysql &,表示在后台运行,不打开新的终端 3.修改密码 use mysql; update user set passw

  • MySql在Mac上的安装与配置详解

    一.下载安装 官网下载社区版dmg安装文件: https://dev.mysql.com/downloads/mysql/ 1.执行安装文件,按步骤完成安装. 2.安装完成后终端输入: mysql --version; ----显示版本号说明正常,若显示command not found,在终端输入如下,"/usr/local/mysql/bin/mysql"为mysql默认安装路径: $ cd /usr/local/bin/ $ sudo ln -fs /usr/local/mysq

  • MySQL分页分析原理及提高效率

    MySQL分页分析原理及提高效率 PERCONA PERFORMANCE CONFERENCE 2009上,来自雅虎的几位工程师带来了一篇"Efficient Pagination Using MySQL"的报告,有很多亮点,本文是在原文基础上的进一步延伸. 首先看一下分页的基本原理: MySQL> explain SELECT * FROM message ORDER BY id DESC LIMIT 10000, 20\G ***************** 1. row *

  • pycharm中连接mysql数据库的步骤详解

    前言 最近在新的环境配置pycharm的项目时候,发现pycharm不能连接到mysql数据库.由于安了java环境但是还没配置相关的库,并且jetbrains家的IDE一般都是java写的,于是猜想可能是java缺少mysql的驱动.所以就动手起来,总算是成功了,所以将过程分享出来给大家,需要的朋友们一起来学习学习. 一.先确保python能正常连接到数据库 可以如下图测试,如果无报错,说明正常连接到了数据库 如果有报错,可能是缺少MySQLdb包 先去下载MYSQLdb 官方下载:MySQL

  • mysql5.7.18解压版启动mysql服务

    mysql5.7.18解压版启动mysql服务,具体内容如下 1.下载mysql社区版 2.解压到D:\Program Files 3.在D:\Program Files\mysql-5.7.18-winx64\bin下,新建文件my.ini,内容如下: [client] port=3306 default-character-set=utf8 [mysqld] bind-address = 127.0.0.1 port=3306 character_set_server=utf8 basedi

  • mysql允许所有host访问的方法

    1. 把mysql库中user表中的一条记录的Host字段值改为 %, 奇怪的是一定要用以下语句设置一下密码才行 2. update user set Password=PASSWORD("123456") WHERE  Host="%"; 3. 执行 flush privileges 命令使立即生效 以上这篇mysql允许所有host访问的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • mysql 从一个表中查数据并插入另一个表实现方法

    mysql 从一个表中查数据并插入另一个表实现方法 不管是在网站开发还是在应用程序开发中,我们经常会碰到需要将MySQL或MS SQLServer某个表的数据批量导入到另一个表的情况,甚至有时还需要指定导入字段. 本文就将以MySQL数据库为例,介绍如何通过SQL命令行将某个表的所有数据或指定字段的数据,导入到目标表 中.此方法对于SQLServer数据库,也就是T-SQL来说,同样适用 . 类别一. 如果两张张表(导出表和目标表)的字段一致,并且希望插入全部数据,可以用这种方法: INSERT

  • 详解MySQL导出指定表中的数据的实例

    详解MySQL导出指定表中的数据 要求: 1. 不导出创表的语句,因为表已经建好:默认会导出,先drop table然后create table: 2. 导出的insert语句加上ignore,允许重复执行:默认不会加上ignore: 3. insert语句中列出表中的字段,看得更清楚:默认不会: 4. 分记录生成多条insert语句,修改起来比较容易:默认是一条: 最终结果如下: mysqldump -pxxxxxx qzt qf1_mail_account --no-create-info

  • Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法

    本文实例讲述了Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法.分享给大家供大家参考,具体如下: #!/usr/bin/env python # -*- coding:utf-8 -*- """ Purpose: 生成日汇总对账文件 Created: 2015/4/27 Modified:2015/5/1 @author: guoyJoe """ #导入模块 import MySQLdb import time impor

  • mysql查找删除表中重复数据方法总结

    在数据库表里,我们有时候会保存了很多重复的数据,这些重复的数据浪费资源,我们要将其删除掉,应该怎么处理呢?下面来看一下. 先看下我们的表数据,有一些数据是重复的. 要查找重复数据,我们可以使用mysql里的having语句,如图. 执行这个语句后,我们可以看到现在的结果里显示的就是表中重复数据的字段. 要删除这些重复的数据,我们找出这些数据的ID,在select语句里,添加id字段,使用max函数,可以得到重复数据最后面的id. 执行结果如图,得到重复数据的id为8和9. 这样我们就可以使用de

  • Mysql将一个表中的某一列数据复制到另一个表中某一列里的方法

    mysql复制表中的一列到另一个表中 有时候,我们需要复制某个字段一整列的数据到另外一个新的字段中,这很简单,SQL可以这么写: UPDATE tb_1 SET content_target = content_source; 大概写法如下: Update {your_table} set {source_field} = {object_field} WHERE cause 有Navicat等工具更好,可以直接选中一列数据,拷贝粘贴到你需要的列中.如果是同一个表那没什么问题,如果是新表,请保持

  • mysql从一张表查询批量数据并插入到另一表中的完整实例

    说在前面 nodejs 读取数据库是一个异步操作,所以在数据库还未读取到数据之前,就会继续往下执行代码. 最近写东西时,需要对数据库进行批量数据的查询后,insert到另一表中. 说到批量操作,让人最容易想到的是for循环. 错误的 for 循环版本 先放出代码,提前说明一下,在这里封装了sql操作:sql.sever(数据库连接池,sql语句拼接函数,回调函数) for(let i=0;i<views.xuehao.length;i++){ sql.sever(pool,sql.select(

  • 如何使用MySQL一个表中的字段更新另一个表中字段

    1,修改1列 update student s, city c set s.city_name = c.name where s.city_code = c.code; 2,修改多个列 update a, b set a.title=b.title, a.name=b.name where a.id=b.id •子查询 update student s set city_name = (select name from city where code = s.city_code); oracle

  • MySQL实现批量更新不同表中的数据

    目录 批量更新不同表的数据 下面为当时所编写的存储过程 本代码涉及到的MySQL的内容为 批量更新语句(UPDATE) 使用UPDATE语句实现批量修改 创建数据库‘bhl_tes’ 创建表‘test_user’ 批量插入记录 批量修改记录 批量更新不同表的数据 今天翻到以前写的批量更新表中的数据的存储过程,故在此做一下记录. 当时MySQL中的表名具有如下特征,即根据需求将业务表类型分为了公有.私有和临时三种类型,即不同的业务对应三张表,而所做的是区分出是什么类型(公有.私有.临时)的业务表对

  • MySQL如何让一个表中可以有多个自增列

    目录 1.手动指定自增值 2.手动修改自增值 3.一个表可以有多个自增列吗? 4.其他注意事项 4.1 自增列只能为整数类型 4.2 必须配合 key 一起使用 总结 前言: 自增列可使用 auto_increment 来实现,当一个列被标识为 auto_increment 之后,在添加时如果不给此列设置任何值,或给此列设置 NULL 值时,那么它会使用自增的规则来填充此列. PS:本文以下内容基于 MySQL InnoDB 数据库引擎. 默认情况下自增列的值为 1,每次递增 1,比如以下建表

  • 在MySQL中同时查找两张表中的数据的示例

    这个例子里面我们从两个表中取出头两行,然后合并到一个表中. 在现实中我们常常会遇到这样的情况,在一个数据库中存在两个表,假设表1储存着公司个产品本季度销售信息,表2储存着公司本季度欠款金额情况.在一个页面中我们想把这两个信息显示出来.通常的做法是在程序中进行两次SQL查询,返回两个结果集,在分别显示出来,非常麻烦. 下面是实现这个功能的代码: CREATE PROCEDURE test AS SET NOCOUNT ON --指示存储过程不返回查询影响的行数 DECLARE @col1c var

随机推荐