个人永久性免费-Excel催化剂功能第21波-Excel与Sqlserver零门槛交互-执行SQL语句篇
在前两波中,已完成了Excel与Sqlserver的查询和上传功能,但难免许多临时的或更深入地操作数据库需要用Sql语句来操作,对一般用户电脑里,不可能有条件轻易安装一个数据库客户端软件,就算安装了对其中烦多的功能操作也不胜任。
开发一个简单的接受SQL语句对数据库进行访问操作就有点必要,当然这个落脚点放到Excel上是很不错的选择,毕竟所有用户电脑都有安装Excel。
并且在Excel上批量构造SQL语句也是容易的事,若有数据需要从数据库中导出,Excel作为装载小量数据并进行后续分析的容器是最佳选择,故今天给大家献上在Excel上向Sqlserver发送SQL命令并执行的功能。
使用场景
虽然操作数据库的任何操作都可以最终转换为写特定的SQL语句去操作,但不代表用SQL语句去操作是最佳的选择,就算专业的数据库开发维护人员,对一大坨的SQL代码也没几个能表示写得快而准无差错。
在Sqlserver数据库上,唯SQL语句更是要命的,微软自始以来就是以用户体验著称,让用户可以更低的成本操作数据库,微软自家出了SSMS数据库管理工具,许多的数据库的操作都可以落实为界面可视化操作如:新建数据库、数据表、视图,增删更改表字段类型等,都是界面化无比友好地操作,甚至可以自动生成所需的SQL语句简单小改一下即可达到想要的效果。
因此,对数据库开发管理者来说,在Excel上使用SQL语句访问数据库并不存在很大的方便性,以下是我个人想到的一些有必要在Excel里使用SQL语句访问数据库的场景。
执行存储过程或临时SQL查询返回数据表
在第19波中,已经演示过让用户在Excel上轻松地向Sqlserver发出查询,并且可使用Excel自有的自动筛选界面友好无痕地实现条件查询操作。
但此功能有部分场景未能涉及,如返回的表数据结构来源复杂,使用视图的方式进行大量嵌套、子查询性能有瓶颈,需要用到存储过程来实现(存储过程可以有许多中间步骤,生成临时表等操作,避免了直接查询带来的性能问题)。
同时某些数据返回不能直接用视图,需要用存储过程做一些复杂处理。此时有必要让Excel也可以使用存储过程查询所需数据。
在带参数的存储过程中,还需要教导用户理解参数怎么个输入和修改,让用户有能力实现类似条件查询的效果,不用一次性返回过多的数据源让Excel无法招架住。
执行存储过程或执行作业,手动调度运行数据ETL
当用户使用第20波手动导入了新的数据到Sqlserver上,可能某些用户需要的结果表数据,依赖于当前上传的表数据,而不以视图的方式来关联上传表数据,而是以存储过程的方式进行运算后再返回结果表,此时有必要让用户可以手动执行存储过程,生成新的结果表数据,再用第19波提及的方法,自助式地把所要的新的结果数据取回。
另一方面,如果新的结果表数据不是依赖用户上传的数据,而是依赖生产系统里的实时数据,如查看截止到当前的订单数据。
一般数据仓库里的数据非实时数据(实时生产性数据与分析所需的历史分离是较好的选择,减少对生产数据库的大批量数据查询时的负荷,从而保障生产数据库的稳定性)
一般的数据ETL操作只会在一天中某个时间进行(一般在凌晨业务系统不繁忙时),当前业务分析需要截止到现在的数据,此时需要手动执行ETL操作,一般调用一下Sqlserver的作业即可,此时若要把此需求返回给IT人员操作,沟通成本太大,IT人员也不乐意随时去配合这种临时性的任务。
此时若用户可以自行执行这些任务,就可以完美解决了,所以IT人员给用户一段SQL语句,然后授予其权限,用户只需简单单击按钮即可完成,就是Excel催化剂开发此功能的一大刚需场景。
临时性地执行部分SQL语句
此部分一般是给专业IT数据库人员使用,一般用户不建议使用临时性的SQL查询,而是应该把需求提取IT人员,让IT人员编写好相应的SQL,并固定为存储过程、视图等对象,再由用户自行去运行以上两点提及的场景所要的任务。说句心理话,用习惯SSMS,没有几个人喜欢用其他的Sqlserver客户端,更不要说如此简陋的只支持运行SQL语句的客户端。
详细操作步骤
-
点击功能区的【SQL执行语句】,打开以下窗体。
-
填写服务器名、数据库名、用户、密码等信息,若想找寻已使用过的连接信息,可点击【选择历史连接信息】,从跳出的对话框中双击某一行记录获取。
-
在下方左侧输入所要执行的SQL语句
若需要对大段SQL语句进行格式化,方便更好地识别理解SQL内容,可点击中部的【格式化SQL】,此时左右两边都会出现格式化后的SQL语句,其中右侧会有关键字的高亮显示。程序最终执行的是左侧的SQL语句,右侧仅供可视化阅读。 -
若对当前的SQL语句在日后其他时候复用,可对其进行保存下来,供下次直接调用使用。点击【保存当前SQL语句】,填写名称和备注信息,方便下次检索时查看。
-
若需要复用已使用过的SQL语句,点击【选择历史SQL语句】,即可打开历史保存过的SQL语句清单。双击某一行任一单元格即可引用此行的SQL语句到主窗口中。
-
在执行SQL语句时,区分有无返回结构表对应不同的执行按钮操作
若执行的SQL语句,没有返回结果表时,使用【SQL执行-无返回表数据】,若有表数据返回,根据需要是新建智能表存储还是覆盖现有智能表,而选择【SQL执行-返回表数据-新建智能表】还是【SQL执行-返回表数据-现有智能表】。
有数据表返回的操作,原理上是通过Excel原生功能的访问Sqlserver的工作薄连接中的修改其连接字符串和查询SQL代码。
使用此方式的好处是,当用户想从Sqlserver抓取新的数据,无需重复以上的操作,只需点击鼠标右键刷新一下即可。
总结
操作数据库最终的方式是向数据库发出SQL查询,但因为普通用户无法轻松掌握SQL语言,此时有必要用一些用户能够掌握的方式去辅助完成。第19波中着重是查询数据库表、视图信息,第20波是把Excel表数据上传至数据库中,此两部分已大大减轻了数据库开发管理者的日常工作。
同时今天的第21波里,更是无限开放了使用SQL语句对数据库进行操作的功能,理论上已经可以完成任何数据库所需的操作,但鉴于大部分在Excel上使用SQL语句操作数据库的可操作性不强或有更好的替代方案,也详细进行原因说明,把最有必要的部分着重演示说明了。
经过Excel与Sqlserver交互三步曲,已经大大地提升了普通Excel用户的数据处理能力,也极大的减轻了数据库开发管理者对用户日常数据需求的开发难度,专注于业务逻辑和SQL语句编写,最终向用户推送数据结果将变得十分简易。
系列文章
一文带你全面认识Excel催化剂系列功能
安装过程详解及安装失败解决方法
第1波-工作表导航
第2波-数字格式设置
第3波-与PowerbiDesktop互通互联
第4波-一大波自定义函数高级应用,重新定义Excel函数的学习和使用方法
第5波-使用DAX查询从PowerbiDeskTop中获取数据源
第6波-导出PowerbiDesktop模型数据字典
第7波-智能选区功能
第8波-快速可视化数据
第9波-数据透视表自动设置
第10波-快速排列工作表图形对象
第11波-快速批量插入图片
第12波-快速生成、读取、导出条形码二维码
第13波-一键生成自由报表
第14波-一键生成零售购物篮分析
第15波-接入AI人工智能NLP自然语言处理
第16波-N多使用场景的多维表转一维表
第17波-批量文件改名、下载、文件夹创建等
第18波-在Excel上也能玩上词云图
第19波-Excel与Sqlserver零门槛交互-查询篇
第20波-Excel与Sqlserver零门槛交互-数据上传篇
第21波-Excel与Sqlserver零门槛交互-执行SQL
第22波-Excel文件类型、密码批量修改,补齐Power短板
关于Excel催化剂
Excel催化剂先是一微信公众号的名称,后来顺其名称,正式推出了Excel插件,插件将持续性地更新,更新的周期视本人的时间而定争取一周能够上线一个大功能模块。Excel催化剂插件承诺个人用户永久性免费使用!
Excel催化剂插件使用最新的布署技术,实现一次安装,日后所有更新自动更新完成,无需重复关注更新动态,手动下载安装包重新安装,只需一次安装即可随时保持最新版本!
Excel催化剂插件下载链接:https://pan.baidu.com/s/1gC6joqGY_SIg_yONga9PaQ
因插件使用VSTO开发技术完成,插件的安装需要电脑满足相关的环境配置才能运行,且需可连接外网的方式实现自动更新机制,若下载安装过程中有任何疑问或需要离线版安装等,尽量不单独私聊询问,加QQ群可高效解决(群内已汇集了VSTO开发、Powerbi技术、Sqlserver商业智能等方面的国内顶尖大牛人物,进群的好处不用多说了)
取名催化剂,因Excel本身的强大,并非所有人能够立马享受到,大部分人还是在被Excel软件所虐的阶段,就是头脑里很清晰想达到的效果,而且高手们也已经实现出来,就是自己怎么弄都弄不出来,或者更糟的是还不知道Excel能够做什么而停留在不断地重复、机械、手工地在做着数据,耗费着无数的青春年华岁月。所以催生了是否可以作为一种媒介,让广大的Excel用户们可以瞬间点燃Excel的爆点,无需苦苦地挣扎地没日没夜的技巧学习、高级复杂函数的烧脑,最终走向了从入门到放弃的道路。
最后Excel功能强大,其实还需树立一个观点,不是所有事情都要交给Excel去完成,也不是所有事情Excel都是十分胜任的,外面的世界仍然是一个广阔的世界,Excel只是其中一枚耀眼的明星,还有其他更多同样精彩强大的技术、工具等。Excel催化剂也将借力这些其他技术,让Excel能够发挥更强大的爆发!
关于Excel催化剂作者
姓名:李伟坚,从事数据分析工作多年(BI方向),一名同样在路上的学习者。
技术路线从一名普通用户,通过Excel软件的学习,从此走向数据世界,非科班IT专业人士。
历经重重难关,终于在数据的道路上达到技术平原期,学习众多的知识不再太吃力,同时也形成了自己的一套数据解决方案(数据采集、数据加工清洗、数据多维建模、数据报表展示等)。
擅长技术领域:Excel等Office家族软件、VBA&VSTO的二次开发、Sqlserver数据库技术、Sqlserver的商业智能BI技术、Powerbi技术、云服务器布署技术等等。
2018年开始职业生涯作了重大调整,从原来的正职工作,转为自由职业者,暂无固定收入,暂对前面道路不太明朗,苦重新回到正职工作,对Excel催化剂的运营和开发必定受到很大的影响(正职工作时间内不可能维护也不可能随便把工作时间内的成果公布于外,工作外的时间也十分有限,因已而立之年,家庭责任重大)。
和广大拥护者一同期盼:Excel催化剂一直能运行下去,我所惠及的群体们能够给予支持(多留言鼓励下、转发下朋友圈推荐、小额打赏下和最重点的可以和所在公司及同行推荐推荐,让我的技术可以在贵司发挥价值,实现双赢(初步设想可以数据顾问的方式或一些小型项目开发的方式合作)。)