excel vba+ado+sql入门教程001:认识sql in excel.docxVIP

excel vba+ado+sql入门教程001:认识sql in excel.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Excel VBA+ADO+SQL入门教程001:认识SQL In Excel 那就先说SQL吧。 SQL是一种结构化查询语言(Structured Query Language),是一种声明式语言,敲黑板划重点【结构化和声明式】。SQL的核心是对表的引用,声明你想从数据源中获取什么样的结果,而不用告诉计算机如何才能够得到结果—— 后面这句话似乎很难理解,举例来说,倘若我们需要获取上图所示表格(Sheet1)成绩大于等于80分的人员名单,如果用命令式程序语言,比如VBA,是这样的: Sub MyFind() ? ? Dim arr, brr, i, k ? ? arr = Sheet1.[a1].CurrentRegion ? ? ReDim brr(1 To UBound(arr), 1 To UBound(arr, 2)) ? ? For i = 1 To UBound(arr) ? ? ? ? If arr(i, 2) = 80 Then ? ? ? ? ? ? k = k + 1 ? ? ? ? ? ? brr(k, 1) = arr(i, 1) ? ? ? ? ? ? brr(k, 2) = arr(i, 2) ? ? ? ? End If ? ? Next ? ? [d:f].ClearContents ? ? [d1].Resize(k, 2) = brr End Sub 你需要通过VBA编程告诉计算机每一步怎么走,数据从哪里来,从哪里开始遍历,行列是多少,符合条件的数据装入哪里,怎么装等等…… 而如果用声明式SQL语言呢?只要告诉计算机我要什么就可以了。 SELECT 姓名,成绩 FROM [Sheet1$] WHERE 成绩=80 我要Sheet1表(FROM [Sheet1$])……成绩大于等于80(WHERE 成绩=80)……姓名和成绩的数据(SELECT 姓名,成绩)。 只要结果,不问过程。 就酱紫的声明式霸道总裁范。 4.为什么要学习SQL In Excel(Excel支持的SQL语言)呢? 换言之,相比于Excel其它功能,例如函数、VBA、POWER PIVOT等,SQL有何优势? 首先,必须严肃脸说明的是,对于普通Excel使用者而言,VBA、SQL以及以后提及的ADO并不是非学不可的,非学不可的是基础操作、函数、透视表、图表…… 然而大数据时代,对于另外相当一部分表族而言,Excel用久了,慢慢的,会意识到一个大问题;曾经在你心中无比强大的Excel函数,原来只适合小数据的腾挪躲闪;当数据量稍大后,函数这货就像未嗑士力架的姚明——不来劲的很哩。 SQL In Excel则可以解决函数处理大数据效率低下的问题,嗯~使用SQL语言,你甚至可以将Excel作为前台数据管理界面,数据库(例如ACCESS)作为后台数据储存仓库,进而储存、分析、管理远超Excel体积的数据量。 打个响指,我们之前讲过,VBA处理数据的核心是数组+字典,倘若SQL和它比较起来有何优劣? 作为一个正努力成为乐观主义者的人,星光还是先说优点吧。 通过上面代码的栗子我们很直观的看到,SQL的书写要比VBA编程简洁的多,甚至比小巧灵的函数还要简洁;此外,SQL高效处理的数据量上限,也是远远大于VBA数组+字典的;字典装上50W的数据,一般电脑的计算效率就开始垂直下降了,而SQL 还是风轻云淡脸;最后,SQL+ADO+VBA可以通过Excel直接处理数据库(例如ACCESS)来源的数据……。 然后说劣势。 SQL作为一种数据库结构化查询语言,对表的结构和数据的类型有着严格的要求,而严格来说Excel并非数据库,尽管它支持ADO和SQL(谁说装了数据就是数据库的?拉出去自弹小丁丁500下,好冷)。Excel对表的结构和数据的类型并没有严格的限定,例如合并单元格,多行表头,空记录,一列之内存在多种数据类型等等劣迹存在,因此,字典+数组处理EXCEL数据的灵活性要远远高于SQL,毕竟数组遍历在手,天下我有,什么合并单元格多行表头,统统都是浮云…… 最后,SQL In Excel 和Power BI For Excel(以下简称Power BI)相比优势在哪里? 从Excel的角度讲,SQL和Power BI最大的优势是,SQL支持VBA语言。通过ADO执行SQL语言,VBA可以获取、分析、管理多种来源的数据,甚至进而对获取的数据再搭配字典、数组以及各种Excel自带的功能作进一步自动化、智能化处理……换句话说,VBA运行SQL语句后,可以再整合Excel所有的功能进一步处理数据,除了Power BI——是的,Power BI不支持VBA,耸肩,无奈。 从数据的角度讲,Power BI是一款数据分析的软件,包含了M和DAX查询语言,SQL则

文档评论(0)

wx171113 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档