如何在Excel中使用SQL语言? |
您所在的位置:网站首页 › excel获取外部数据来源不包括 › 如何在Excel中使用SQL语言? |
如何在 Excel 中获取外部数据源?
使用 SQL 查询数据,首先需要数据源。如果我们用 Excel 来呈现这些数据的话,就需要先从外部导入数据源。这里介绍两种直接导入的方式: 通过 OLE DB 接口获取外部数据源;通过 Microsoft Query 导入外部数据源。 通过 OLE DB 接口获取外部数据源OLE 的英文是 Object Link and Embedding,中文意思是对象连接与嵌入,它是一种面向对象的技术。DB 代表的就是数据库。OLE DB 的作用就是通向不同的数据源的程序接口,方便获取外部数据,这里不仅包括 ODBC,也包括其他非 SQL 数据类型的通路,你可以把 OLE DB 的作用理解成通过统一的接口来访问不同的数据源。 如果你想要在 Excel 中通过 OLE DB 接口导入数据,需要执行下面的步骤: 第一步,选择指定的文件。方法是通过“数据” → “现有连接”按钮选择连接。这里选择“浏览更多”,然后选择指定的 xls 文件。
第二种方式是利用 Microsoft Query 功能导入外部数据源,具体步骤如下: 第一步,选择指定的文件。方法是通过“数据” → “获取外部数据”按钮选择数据库,这里我选择了“Excel Files”,然后选择我们想要导入的 xls 文件。
通过上面的操作你也能看出来,从外部导入数据并不难,关键在于通过 SQL 控制想要的结果集,这里我们需要使用到 Excel 的数据透视表以及数据透视图的功能。 我简单介绍下数据透视表和数据透视图: 数据透视表可以快速汇总大量数据,帮助我们统计和分析数据,比如求和,计数,查看数据中的对比情况和趋势等。数据透视图则可以对数据透视表中的汇总数据进行可视化,方便我们直观地查看数据的对比与趋势等。 假设我想对主要角色(role_main)的英雄数据进行统计,分析他们平均的最大生命值(hp_max),平均的最大法力值 (mp_max),平均的最大攻击值 (attack_max),那么对应的 SQL 查询为: SELECT role_main, avg(hp_max) AS `平均最大生命`, avg(mp_max) AS `平均最大法力`, avg(attack_max) AS `平均最大攻击力`, count(*) AS num FROM heros GROUP BY role_main 使用 SQL+ 数据透视表现在我们使用 SQL 查询,通过 OLE DB 的方式来完成数据透视表。我们在第三步的时候选择“属性”,并且在命令文本中输入相应的 SQL 语句,注意这里的数据表是 [heros$],对应的命令文本为: SELECT role_main, avg(hp_max) AS `平均最大生命`, avg(mp_max) AS `平均最大法力`, avg(attack_max) AS `平均最大攻击力`, count(*) AS num FROM [heros$] GROUP BY role_main
数据透视图可以呈现可视化的形式,方便我们直观地了解数据的特征。这里我们使用 SQL 查询,通过 Microsoft Query 的方式来完成数据透视图。我们在第三步的时候选择在 Microsoft Query 中查看数据或编辑查询,来看下 Microsoft Query 的界面:
刚才我们讲解的是如何从 Excel 中导入外部的 xls 文件数据,并在 Excel 实现数据透视表和数据透视图的呈现。实际上,Excel 也可以与 MySQL 进行数据交互,这里我们需要使用到 MySQL for Excel 插件: 下载 mysql-for-excel 并安装,地址:https://dev.mysql.com/downloads/windows/excel/ 下载 mysql-connector-odbc 并安装,地址:https://dev.mysql.com/downloads/connector/odbc/ 这次我们的任务是给数据表增加一个 last_name 字段,并且使用 Excel 的自动填充功能来填充好英雄的姓氏。 第一步,连接 MySQL。打开一个新的 Excel 文件的时候,会在“数据”面板中看到 MySQL for Excel 的插件,点击后可以打开 MySQL 的连接界面,如下:
运行结果(69 条记录): |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |