中企动力 > 商学院 > 将excel导入sql数据库
  • ?

    Excel之另类处理数据

    涵柳

    展开

    首看一个栗子

    某人工客服一天的客户来电记录如下表,希望统计来电次数≥2的客户,并记录其第一通来电数据。

    (数据都是虚构的,编造的电话防止真的是别人的,加了个fake)

    (共8239条数据)

    这种问题,在SQL中只要两步即可完成。

    1)对原表a按“电话”汇总,记录出现次数和最早时间,生成临时表b;

    2)对表a、b作innerjoin,满足三个条件:a、b中电话相等;a、b中时间相等;b中次数大于1。

    当然,在Excel中不用SQL也完全能够实现上述目的,且方法不只一种,但是究其复杂程度、速度都有所欠缺。例如其中一种方法如下:

    1)将数据转化为Table,方便后面处理;

    2)添加辅助列,计算电话出现的次数(由于数据量较大,计算后选择性粘贴为数值);

    3)按次数(降)、时间(升)对数据排序;

    4)删除次数为1的所有行;

    5)按照列D“电话”删除重复值。

    得到最终结果,共有2446个客户来电次数≥2。

    上述步骤略显复杂,实际操作后,你会发现,速度较慢,影响效率。那么如何在Excel中使用SQL语句呢?

    答:我们在VBA环境下借助数据库连接对象来执行SQL语句。具体代码如下:

    我们只要将上述代码中的sql字符串替换成我们的SQL语句,即可执行相应SQL语句。SQL语句的数据表可用[Sheet1$A1:D8240]表示引用,如果Sheet1中只有一个数据表,也可写成[Sheet1$],本例中的SQL语句如下:

    这一整句SQL语句则实现了文章开头指出的两个步骤:

    执行SQL语句得到的结果如下。

    同样是2446条记录,对比结果也完全一致,但耗时只有0.85秒,效率极大提高。

    Excel数据结合SQL语句进行处理,能够高效的实现很多看似复杂数据处理问题。

  • ?

    如何将数据库文件附加到SQL Server上

    黑鱼崽

    展开

    附加数据库就是将一个备份磁盘中的数据库文件(.MDF)和对应的日志文件(.LDF)拷贝到需要的计算机,并将其添加到某个SQL Server数据库服务器中,由该服务器来管理和使用这个数据库。

    把需要附加的数据库文件拷贝到自己想存储的目录下,然后单击“数据库”,附加

    点击添加,选择路径,单击确定,即可完成附加。在数据库界面就可以看到被附加的数据库了

    分离数据库就是将某个数据库(如student_Mis)从SQL Server数据库列表中删除,使其不再被SQL Server管理和使用,但该数据库的文件(.MDF)和对应的日志文件(.LDF)完好无损。分离成功后,我们就可以把该数据库文件(.MDF)和对应的日志文件(.LDF)拷贝到其它磁盘中作为备份保存。(以Transino_ZHBB为例子)

    打开属性窗口,在属性窗口中选择选项,然后找到状态,把限制访问改成“SIGN_USER”

    单机确定之后,显示如下窗口

    单击Transino_ZHBB,选择任务下的子菜单分离

    如下图,如果消息栏为空,则选择“就绪”,否则“未就绪”,同时选择删除连接,更新统计信息

  • ?

    SQL Server数据的导入导出

    Ellie

    展开

    SQL Server 2008的导入导出服务可以实现不同类型的数据库系统的数据转换。为了让用户可以更直观的使用导入导出服务,微软提供了导入导出向导。导入和导出向导提供了一种从源向目标复制数据的最简便的方法,可以在多种常用数据格式之间转换数据,还可以创建目标数据库和插入表。可以向下列源中复制数据或从其中复制数据:SQL Server、文本文件、Access、Excel、其他 OLE DB 访问接口。这些数据源既可用作源,又可用作目标。还可将 ADO.NET 访问接口用作源。指定源和目标后,便可选择要导入或导出的数据。 可以根据源和目标类型,设置不同的向导选项。例如,如果在 SQL Server 数据库之间复制数据,则指定要从中复制数据的表,或提供用来选择数据的 SQL 语句。

    打开SQL Server Management Studio,在对象资源管理器中,展开“SQL Server 实例”→“数据库”→“MySchool”节点,单击鼠标右键,选择“任务”→“导出数据”命令。出现导入和导出向导的欢迎界面,单击“下一步”按钮,出现“选择数据源”对话框,如图

    在“选择数据源”对话框中设置如下选项:数据源:SQL Native Client 10.0。服务器名称:DC。身份验证:Windows身份验证。数据库:MySchool。单击“下一步”按钮,出现“选择目标”对话框,设置如下选项(如图所示):目标:平面文件目标。文件名:C:\student.txt。格式:带分隔符。

    单击“下一步”按钮,出现“指定表复制或查询”对话框,如图所示。

    在“指定表复制或查询”对话框中选中“复制一个或多个表或视图的数据”单选按钮,单击“下一步”按钮,出现“配置平面文件目标”对话框,如图所示。

    设置源表或源视图为MySchool.dbo.student,单击“下一步”按钮。在“保存并执行包”对话框中选中“立即执行”复选框,如图所示,然后单击“下一步”按钮。

    在如图所示的对话框中单击“完成”按钮。

    如图所示,当执行完后,单击“关闭”按钮。

    在Windows资源管理器中打开C:\student.txt文件,验证导出的结果。

    打开SQL Server Management Studio,在对象资源管理器中,展开“SQLServer 实例”→“数据库”→“Benet”节点,单击鼠标右键,选择“任务”→“导入数据”命令。出现欢迎界面,单击“下一步”按钮,出现“选择数据源”对话框。在“选择数据源”对话框中设置如下选项数据源:Microsoft Excel。Excel文件路径:C:\temp\Customer.xls。版本:Microsoft Excel 97-2005。(4)单击“下一步”按钮,出现“选择目标”对话框,设置如下选项:目标:SQL Native Client。服务器名称:TESTSQL。身份验证:Windows身份验证。数据库:Benet。

    单击“下一步”按钮,出现“指定表复制或查询”对话框。在“指定表复制或查询”对话框中选中“复制一个或多个表或视图的数据”单选按钮,单击“下一步”按钮。出现“选择源表和源视图”对话框,设置如下选项,如图4.9所示,然后单击“下一步”按钮。源:Cumtomer。目标:Benet.dbo.Customer。

    在“保存并执行包”对话框中选中“立即执行”复选框,然后单击“下一步” 按钮。在如图所示的对话框中单击“完成”按钮。当执行完后,单击“关闭”按钮。

  • ?

    雨沐田:数据分析之数据库与Excel的区别

    萧然

    展开

    搞技术的童鞋或高手请直接路过.....

    作为一个合格的数据分析师,Excel是必备工具,但仅Excel还不够,数据量的激增和复杂性提高,以及数据平台话的趋势,要求我们必须要了解并熟练掌握数据库的操作,但在学习数据库操作前,先全面对比下数据库和Excel

    Excel不用多说,地球人都知道是干神马的,而且零门槛使用;数据库相信很多人也听过或用过,但对于非技术的童鞋们,可能还是还有不太清楚2到底有什么区别,今天就来捋一捋它们的区别。

    一、相同点

    都是用来处理数据的工具,而且特别擅长处理一维二维表形式的数据。在工作中都很常用。

    二、不同点

    1、Excel是一个具体的工具,而数据库是个大的概念,具体的产品很多,常见的有MS SQL Server、MySql,Oracle等,分属于不同的公司。

    2、Excel是由sheet组成的,可以有多个sheet;数据库由表组成,可以有多个表。

    3、Excel更适合较为少量的数据,虽然高版本的Excel理论上一个sheet 可以存放几十万行的数据,但要是真存放了那么多,可以想想打开的速度; 而数据库可以存放大批量的数据,一个表随随便便存个几十万是一点问题没有的,上百万千万也是很常见。

    4、Excel的多个sheet之间不能设计复杂的数据关系,而数据库的的表之间可以有复杂的关系,这也是数据库的最大特点,关系型数据库的名字由此而来。

    5、Excel不能共享,而数据库可以轻松共享,如我们每天看到的各种网站信息都是数据库信息被共享的实例。

    6、能力方面,Excel可以实现的数据处理功能数据库都可以做到,同时又具备很多Excel没有的功能,如SQL查询、数据聚合、数据索引等等。

    7、安全方面,Excel作为一个办公软件,其安全性可想而知,没有太多的安全性功能,而数据库库则不同,有着复杂的安全机制和权限验证,也有非常完善的数据备份机制,能最大限度的保证数据的安全。

    其实罗列太多也意义不大,只要说清了两者的主要区别即可,总结就是在使用定位、功能性、共享性、安全性4个方面的区别。

    2者各有所长,各有适合的使用场景,但千万不要取2选1,了解他们的不同是为了更好的使用他们,实际工作中这两种工具都是离不开的。

    具体哪些数据库是那些公司的,可以自行度娘一下,主要了解清楚数据库的结构特点和存储数据的方式即可,对数据分析师来说,最关键的是提取使用数据。之后的文章再说如何通过SQL语句读取数据。

    关注公号「大数据分析狮」,免费获取百本大数据分析电子书!

  • ?

    数据库之SQL经典面试题-行列转换二-列转行

    温易文

    展开

    本帖子是行转列的一个逆向操作——列转行,看下面一个面试题

    面试题2:柠檬班第30期学生要毕业了,他们的Linux、MySQL、Java成绩数据表 tb_lemon_grade_column中,表中字段student_name,Linux,MySQL,Java分别表示学生姓名、Linux成绩、MySQL成绩、Java成绩,数据图1所示。请写出一条SQL,将图1的数据变成图2的形式(列转行)

    下图示:

    1:使用上节课学的知识,获得以列的形式展示的成绩数据(行转列)

    SELECT student_name,SUM(CASE COURSE when'Linux'THEN SCORE ELSE0END) as'Linux',SUM(CASE COURSE when'MySQL'THEN SCORE ELSE0END) as'MySQL',SUM(CASE COURSE when'Java'THEN SCORE ELSE0END) as'Java'FROM tb_lemon_grade

    结果如下:

    2:使用导出功能,将数据导入到Excel

    点击下一步,选择保存位置,输入保存的文件名

    点击下一步,点击开始,讲数据导入到本地

    3:使用导入功能,将导出的Excel表导入到数据库

    选择表,点击右键选择导入向导

    选择Excel文件,点击下一步,选择刚才保存的Excel文件,输入要保存的表,进行导入

    4:导入完成,就生成了一个表,查看下数据

    5:上面是使用导入本地文件的方式新建了一个表,并且把文件的数据也导入进来了,

    如果是数据本身已经存在数据库中,我们还有更简单的方法,使用的是创建表的CREATE TABLE语法,可以新建表,并且把结果集的数据也会初始化到新建表中,如下所示:

    CREATE TABLE new_tables(SELECT student_name,MAX(IF(COURSE = 'Linux',SCORE,0)) 'Linux',MAX(IF(COURSE = 'MySQL',SCORE,0)) 'MySQL',MAX(IF(COURSE = 'Java',SCORE,0)) 'Java'FROM tb_lemon_grade

    6:怎么列传行呢?使用UNION ALL,然后行转列

    SELECT student_name,'linux' course,linux scoreFROM tb_lemon_student2

    7:我们想排下序怎么办呢? 采用子查询的方式(注意子查询中的别名a,一定要写上别名)

    SELECT student_name,'linux' course,linux scorefrom tb_lemon_student2

    今天就分享到这里了。如果大家觉得还不错,就点个赞吧!!!!

  • ?

    excel办公小技巧:vba使用sql语句获取excel表格数据教程

    紫槐

    展开

    在excel办公中,用VBA加上SQL语句实现对excel表格的数据获取,对于处理一些大数据量的表格来说是非常实用的。SQL是结构化查询语言,是数据库开发中用的程序设计语言,数据库里的数据表跟EXCEL里的表格其实是很类似的,所以用VBA加SQL语句可以实现类似的表格查询操作。

    举个例子:在EXCEL里用VBA+SQL来查询总成绩大于290分的学生

    一、手工操作的步骤是:

    1、 EXCEL打开如下表格,点击插入-数据透视图,点击创建数据透视图

    2、 在出现的数据透视图界面,点击姓名为行标签,点击成绩为求和项字段

    3、 在左侧的出现的行标签和求和项表格数据进行排序,手工选出成绩大于290分的记录。

    用上面的数据透视图方法很方便,步骤也少,比分类汇总功能要简便些。

    二、VBA加上SQL语句实现EXCEL表格数据的查询

    1、 先用EXCEL打开表格,调出VBE工程界面(ALT+F11),建议在个人工作簿新建个模块,把代码输入到右侧的区域。注:用个人工作簿的好处是,每次启动EXCEL不用手动启用宏。

    2、 根据自己的表格字段和功能需求,修改好SQL代码后,保存按F5快捷键运行。注:SQL语句中表名要用[表名$]这种写法。

    以上是在EXCEL用VBA加SQL语句实现对表格的自动查询,调用的方法是按ALT+F8,选择相应的代码名称,这里的名称是SQL查询。用这种方法对于规则不经常变动的情况下使用很实用,特别是在数据量大的情况下。

    附上截图代码

    Sub SQL查询()

    Dim cnn As Object, rs As Object, SQL As String

    Set cnn = CreateObject("adodb.connection") '创建数据库连接

    cnn.Open "Provider=Microsoft.jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=" & ActiveWorkbook.FullName

    Set rs = CreateObject("adodb.recordset") '创建一个数据集

    SQL = "select 姓名,sum(成绩) from [原始数据$] group by 姓名 HAVING sum(成绩)>290" '设置SQL查询语句,这个根据实际需要改写,注意【表名$】这种写法

    Set rs = cnn.Execute(SQL) '执行查询

    ActiveWorkbook.Worksheets(2).Cells.ClearContents

    Dim i As Integer

    For i = 1 To rs.Fields.Count

    ActiveWorkbook.Worksheets(2).Cells(1, i) = rs.Fields(i - 1).Name '填写标题到表2

    Next

    ActiveWorkbook.Worksheets(2).Range("a2").CopyFromRecordset rs '复制记录集到表2

    rs.Close

    Set rs = Nothing

    cnn.Close

    Set cnn = Nothing

    End Sub

    对于EXCEL2007版本的电子表格,以上的cnn.Open后的字符串要改成"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ActiveWorkbook.FullName & ";Extended Properties=""Excel 12.0;HDR=YES"";"""

  • ?

    EXCEL玩转数据库,8种技巧,几十种功能,终于被整合一起了

    灰涩

    展开

    前言:

    在职场报表中,EXCEL的魔法,可以说无处不在,是一项每个人必须掌握的技能,但是在EXCEL所有的函数之中,有一种函数,称之为【数据库函数】,高效,运行速度快,专门为大数据提供,却很少为人知

    收藏+转发,传播知识,是一种美德

    函数解释

    数据库函数均有三个相同的参数:database、field 和 criteria。这些参数指向数据库函数所使用的工作表区域。其中参数 database 为工作表上包含数据清单的区域。参数 field 为需要汇总的列的标志。参数 criteria 为工作表上包含指定条件的区域。写法为=(database、field,criteria)

    本篇主要介绍DGET、dcount、daverage、dmax、dmin 5个函数,套路完全一致。

    特别提醒

    这是一个让人又爱又恨的函数,爱,是因为这个函数,处理数据高效,快速。

    恨,是因为如果不知道原理,会出大问题的

    经典应用:

    用法1:以关键词开头的处理

    当我们在第三个参数,如实例,输入A的时候, 实际上,计算的是以A开头的所有物料的库存DSUM函数,计算以A开头的所有库存的和dcount函数,计算以A开头的物料的个数dmax函数,计算以A开头的物料的库存的最大值dmin函数,计算以A开头的物料的库存的最小daverage函数,计算以A开头的物料的库存的平均值特别提醒,是以A开头,不是单元格值等于A!!!!在第二个参数,我们这里输入的是2,是因为返回的值,在条件区域的第二列,当然我们可以直接输入B2,就是列号也是可以的用法2:不以A为结尾,的符合条件的值,主要为中间,或是首字母为A,如果末尾为A,只要中间有A这个字符,也是符合条件的

    用法3:包含A的所有符合条件的个数

    用法4:和用法3一样,为包含A的符合条件的个数

    用法5:第二个字符为A的符合条件的个数,且字符长度大于等于3,因为一个问号,代表一个字符

    用法6:以B开头的符合条件的值,因为没有,所以都为0

    用法7:

    这里输入的是,先切换到英文,而后输入单引号',而后输入=A,意思是单元格值完全等于A的符合条件的个数,所以只有一个单元格

    用法8:

    第二个字符为A,并且长度等于3的符合条件的值的处理

    数据库函数,使用方法,就介绍完了.

  • ?

    用数据库和用Excel的区别?

    翠彤

    展开

    首先,我们先来说说数据库是什么?官方说法就是:按照数据结构来组织,存储和管理数据的仓库。数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。比如数据分析,数据整合等等。但是,数据库的使用成本太高,这就像每个人都是程序员一样,所以我在这里说的,是适合所有小白使用的数据库的应用软件。

    Excel表格大家的熟悉程度可就非同一般了,我们几乎每天都在与Excel表格为伍,公司的财务报表,人力资源的信息,行政的考勤记录等等都是用Excel记录的,那么,在数据膨胀化的时代,Excel还能满足我们的需求吗?答案就可见一斑了~

    首先,我觉得数据库的安全性要比Excel强很多,起码在我编辑到一半数据的时候,即使没有来得及保存,数据库的数据也是不会丢失的,他会永远存在于数据库里,已备我不时之需。但是这一点Excel是做不到的,我想大家都经历过数据录入一半的时候,电脑突然出现故障导致所有数据丢失的事件,当时的懊恼和无助,你可还记忆犹新??

    其次,数据库的数据是可以在线共享的,这种共享是多人可以同时操作一个表格并且数据之间是不会有所干扰的,在此基础上,和你共同协作的人也可以看见你创建的数据,当然这是在你允许的情况下。而Excel的分享只能是不断的通过媒介(比如微信,QQ,邮件)来不断的转发给需要的人,当然转发的同时它已经失去了时效性。而数据最可怕的就是失去时效性。

    再有,数据库的数据分析能力远远超过Excel表格,不只是在于他的图表分析,而且有强大的BI功能做数据的大集合,你可以任意将你需要的表格里任意字段提取出来作为你聚合表里的一部分,你甚至可以将不是同一个表格里的数据做任何的运算,这不就是管理层梦寐以求的数据统计报表吗?你还需要在不同的表格里花费大量的时间一点一点计算那可怜的数据吗?

    以后所有的数据都将平台化,这是数据时代的大趋势,看看你是在掌握数据还是数据掌握你,就只差一个数据库了~

  • ?

    Excel同样可以操作MySQL中的数据,这里有完整教程

    冯不评

    展开

    作为同门的数据库产品,Excel操作Access、SQLServer中的数据非常简单。但如果想在Excel中处理MySQL中的数据呢?MySQL是和php珠联璧合的一个数据库,网站开发中经常用到,如果Excel也能访问它就会给工作带来很多方便。

    例如,MySQL数据库中的用户登录数据表,有时希望在Excel中对该表进行一些分析:

    操作步骤如下:

    一、到mysql官网下载odbc连接驱动

    下载地址为:https://dev.mysql/downloads/connector/odbc/

    可下载的驱动程序共有4个文件,请根据自身情况选择下载。例如,我们现在使用的是64位的win7系统,那么就下载安装64位的驱动:

    32位和64位的驱动又分别包含2个文件,一个是安装包,一个是压缩包。一般选择下载msi安装即可。

    选择文件下载时,将弹出登录页面;如果不需要登录,可点击“No thanks, just start my download.”直接进入下载。

    安装驱动的过程中,有可能会出现这样的错误提示:

    如果使用压缩包安装,则会直接提示缺少“msvcr120.dll”的错误。

    这两种错误其实都指向了同一个问题,最简单的解决办法就是安装Visual C++ 2013运行库。微软官方的下载地址为:

    https://microsoft/zh-cn/download/details.aspx?id=40784

    同样的,这里有32位和64位2种文件可供下载,请根据自身情况选择。

    二、创建数据源

    进入“控制面板--系统和安全--管理工具”,双击打开“数据源(ODBC)”,点击“添加”:

    点击“完成”后,接着设置要连接的mysql数据库:

    点击“ok”后即可增加该数据源:

    三、在Excel中建立连接

    打开Excel,选择“数据-自其它来源-来自数据连接向导”:

    选择“odbc dsn”:

    “下一步”后选择刚刚创建的mysql:

    然后再选择要连接的数据库及库中的数据表:

    接着再设定一个连接名称就ok啦:

    注意:mysql数据库中的表名称和表字段不能使用中文,否则将带来乱码问题。因为excel和mysql的默认编码方式不一样,处理起来会相当麻烦。

  • ?

    悄悄告诉你,MySQL 通过SQL语句导出到Excel的方法

    雪枫

    展开

    执行SQL语句

    select fullname,time,endtime,closed from chat_archive into outfile 'c:/xxx.xls'

    注意:因为office默认的是gb2312编码,服务器端生成的很有可能是utf-8编码,此时有几种选择

    1、把查询出来的结果转换为GB2312格式(字段fullname)

    selectconvert(fullname using gb2312)from chat_archive into outfile 'c:/xxx.xls'

    2、在服务器端使用iconv来进行编码转换

    iconv -futf8 -tgb2312 -otest2.xls femm.xls

    如果转换顺利,那么从server上下载下来就可以使用了。

    3.转换如果不顺利,则会提示:iconv: illegal input sequence at position 1841 类似于这样的错误,

    先把femm.xls下载下来,这个时候文件是utf-8编码的,用excel打开,乱码。

    把femm.xls以文本方式打开,然后另存为,在编码选择ANSI编码,保存。

    引申:如何带表头输出Excel?

    select convert("用户号" using gb2312),convert("用户名" using gb2312) from dual union select convert(userno using gb2312),convert(username using gb2312) from t_users into outfile 'd://users.xls';

    注意:

    1、使用合并的查询结果集 但是union会过滤掉重复记录 不过滤使用union all

    2、如果保存的不是磁盘根目录,而是某个文件夹,需要将文件夹先创建好

将excel导入sql数据库

所有视频需要登录后,才能观看

请先登录您的帐号,即可完整播放,如果您尚未注册帐号,请先点击注册。

img

在线咨询

建站在线咨询

img

微信咨询

扫一扫添加
动力姐姐微信

img
img

TOP