在小公司的话,总是会有要开发去导入历史数据(数据从旧系统迁移到新系统上)的时候。这个时候,现场实施或客户会给你一份EXCEL文档,里面包含了一些别的系统上的历史数据,然后就让你导入到现在的系统上面去。

且不说表数据结构的不同了,这个协调过程就能用大量的篇幅去说故事,这里只假设已经将别的系统上的历史数据整理成了适合导入当前系统的数据。如何高效地完成这项导入工作,就是这里讨论的议题:使用EXECL表格中的数据快速生成SQL语句。

因为导入数据就是往表里面插入新数据,因此用的是INSERT语句。

INSERT INTO TABLE(COLUMN1, COLUMN2, ...) VALUES(VALUE1, VALUE2, ...);

那么快速生成这些INSERT语句的秘诀是什么?答案就是EXCEL中的强大的公式和快速自动填充。

这里用一个简单结构的user表做一个简单的例子。

user表中有两个字段,一个是code,一个是name。

在给定的EXCEL中,这两个字段分别对应列C和列D,数据从第2行开始,那么我们就可以从第2行开始写,在第2行的最后新增一列,用于存放公式。

贴出公式来:

=CONCATENATE("insert into user(code, name) values('",C2, "','", D2, "');")

然后点击回车就会根据公式生成对应的INSERT语句了。

然后,重点来了,将鼠标悬停在当前公式单元格的右下角,当右下角变成加号时,往下拖动,系统会自动填充这些公式了。

最后把这些生成好的INSERT语句拷贝到控制台工具或数据库工具中去执行就好了,EXCEL中选中当前列往下所有有内容的单元格快捷键是【ctrl+shift+↓】,然后使用cv大法就行了。当EXCEL中存在成千上万条数据的时候,效率就体现出来了。

另外一个常见的问题是如果编写的语句过长,通常会提示使用&符号来连接的错误,这个时候只要使用&符号来连接字符串就好了。我相信很多人在一开始接触的时候如果遇到这个问题都是手足无措的,并不知道应该要怎么办,就连按照提示使用&连接符都做不到,或者是未正确使用&连接符。实际上,&连接符连接的每个字符串是有长度限制的,只要在一定的长度范围之内的字符串之间使用&连接符,就算正确使用&连接符了。

当然了,除了INSERT语句,也能写其他SQL语句,根据具体需求灵活变通就好了,重要的是要知道这个方法。

更多的,还能有很多的其他场景用得上,使用EXCEL处理数据这一项技能十分重要,有空还是要多学习这方面的知识。

"你所有经历过的难,有机会一定要告诉你爱的ta,让ta知道你爱ta,让ta有勇气去面对人生的兜兜转转。"

使用excel中的数据快速生成sql语句的更多相关文章

  1. c#.net Excel中的数据导入到SQL数据库中

    /// <summary>        /// 从Excel 导入学生        /// </summary>        /// <param name=&qu ...

  2. Excel中,用CONCATENATE函数生成SQL语句

    1.语法 CONCATENATE(text1, [text2], ...)CONCATENATE 函数语法具有下列参数(参数为:操作.事件.方法.属性.函数或过程提供信息的值.):Text1 必需.要 ...

  3. plsql的快速生成sql语句设置

    单 单击tool(工具)->的preferences(首选项)  ,进入到首选项页面 在点击user interface 的editor下的autoreplace 的edit按钮        ...

  4. 如何把Excel数据转化成SQL语句-转

    问题背景 在我们实际的程序开发.维护的过程中,很多时候都要和Excel打交道. 因为用户的数据很多时候是Excel存储的. 公司维护项目的时候,经常要帮客户导入Excel数据,这些数据很多,零 碎,而 ...

  5. 将表里的数据批量生成INSERT语句的存储过程

    有时候,我们需要将某个表里的数据全部导出来,迁移到另一个相同结构的库中,这里可以采取一个简便的方法,通过一个存储过程批量导出数据并生成SQL语句,非常方便.存储过程如下: )) as begin de ...

  6. Excel数据生成Sql语句的方法

    选中想要生成的列,套用表格格式,选中表包含标题的选项确定,然后在最右边的一列第二行处,点击函数功能,选择CONCATENATE,在文本里输入想要的结构即可  代码如下 复制代码 ,=CONCATENA ...

  7. sql 读取excel中的数据

    select 列名 as 字段名 from openBowSet('MSDASQL.1','driver=Microsoft Excel Driver(*.xls);dbq=文件存放地址','sele ...

  8. 图解如何 将Excel里的数据导入到sql server数据库中

    项目中,经常会碰到如何将Excel里的数据导入到sql server中的问题. 下面,图解如何实现导入Excel中的数据到sql server 2008 R2: Excel截图如下: 查询pub数据库 ...

  9. postman上传excel,java后台读取excel生成到指定位置进行备份,并且把excel中的数据添加到数据库

    最近要做个前端网页上传excel,数据直接添加到数据库的功能..在此写个读取excel的demo. 首先新建springboot的web项目 导包,读取excel可以用poi也可以用jxl,这里本文用 ...

随机推荐

  1. Lucene BooleanQuery相关算法

    BooleanQuery对两种不同查询场景执行不同的算法: 场景1: 所有的子句都必须满足,而且所有的子句里没有嵌套BooleanQuery. 例: a AND b AND c 上面语句表示要同时包含 ...

  2. 软件设计师14-UML建模

    UML图 用例图 用例图:参与者.用例 用例之间的关系:包含关系.扩展关系.泛化关系. 用例的包含关系:查询数据外借信息包含用户登录. 用例的扩展关系:修改之前要先查询,则修改信息包含查询信息用例 类 ...

  3. ActiveMQ反序列化(CVE-2015-5254) && ActiveMQ任意文件写入 (CVE-2016-3088)

    ActiveMQ 反序列化漏洞(CVE-2015-5254) 漏洞详情 ActiveMQ启动后,将监听61616和8161两个端口,其中消息在61616这个端口进行传递,使用ActiveMQ这个中间件 ...

  4. js 加密混淆工具

    访问路径:https://www.sojson.com/javascriptobfuscator.html

  5. redis报错: redis.exceptions.ResponseError: value is not an integer or out of range

    问题描述 今天在使用python的redis客户端时碰到了这样的报错:redis.exceptions.ResponseError: value is not an integer or out of ...

  6. Resin 4.0 部署SSL证书

    前言 Resin目前最新的版本还是4.0 (4.0.49),使用Java EE6,在Resin上部署证书,一般有两种方式,首先我们推荐采用Openssl方式,不仅因为Openssl模式下的速度更快,而 ...

  7. Druid连接池使用

    转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/11280540.html 一:DRUID连接池简介 阿里出品的“为监控而生”的数据库连接池,在功能.性能.扩展 ...

  8. Java数据库连接组件C3P0和DBCP

    C3P0连接池组件 开源数据库连接池组件 jar包:c3p0-0.9.2.jar和mchange-commons-java-0.2.2.3.jar 支持JDBC3规范和JDBC2的标准扩展 使用项目H ...

  9. NACOS升级操作

    Server端 0.8.0及以上版本: 解压安装包后替换{nacos.home}/target/nacos-server.jar 删除{nacos.home}/plugins/cmdb/及{nacos ...

  10. flask flask_session,WTForms

    一.Flask_session 本质上,就是是cookie 下的session存储在redis中,方便快速取得session from flask import Flask,session from ...