#9 Excel数据量一多就卡?让我们换个“容器”来解决
(⚠️注:我写的内容,可能有点干,全是文字,但是全是手打,希望点开的你,能够尽量看完,当你看完后,可能会让你了解一下你平时不了解的东西,当然如果你是技术大佬,那就可以别看了)
然后后面我们又让AI给我们扩展了可以同时处理多张Excel表格,以及多张Ecxel表格中的子表,进行同时处理,并增加Excel表格名称以及子表名称,然后还增加了更详细的日志信息与进度条#8 对AI制作的数据提取工具的后续扩展
不知道大家有没有发现当数据量很大的时候,我们通过Excel来打开时,会有一段无响应或者卡顿的现象,其实这个就是软件在告诉你,你的数据量太大了,我已经无法快速为你处理数据了,而且有时候,我们也仅仅只是想从中获取某个数据,或者某个时间段的数据,再或者只是想要做的这段期间产生的销售额或者利润等数据而已,但是Excel的表现却让我们不满意,那我们有没有更好的办法呢?其实是有的,那就是我们今天要来说的另外的一个表格数据容器:数据库。
大家看到数据库,不要觉得这个东西非得是专业技术人员才能用的,其实数据库分为很多种,对于我们新人而言,其实也有比较友好的数据库的,也就是我们今天的主角:SQLite,我这里是为了让大家都能用上这个东西,肯定不可能让大家去手动输入数据库查询命令的,那玩意挺复杂(对新手而言)的,我们有万能(当然可能也没有那么万能)的AI,完全不要担心上手问题,我们今天先来大致了解一下数据库这个东西能够给我们带来什么?
在介绍SQLite之前,我先给大家介绍一下数据库是什么?能够给我们带来什么?
可能大家对于数据库的理解,大部分都是各种放在服务器、OA、ERP、SAP、SAAS系统后台的高端的东西,但是数据库具体是个什么东西却不知道,简单理解,数据库就像是一个超级Excel工作簿,里面可以放很多张表,每张表的结构和Excel工作表一样,有行有列,数据就填在格子里,而数据库可以同时管理几十上百张表,表之间还能建立关联,提高我们的查询速度,当我们通过数据库专用工具访问数据库时,其实看到的数据也是和我们excel一样的类似的数据,当然别人被称为数据库,而不是高级Excel,那肯定也是有原因的。
当我们在Excel表格中进行查询时, 其实效率挺低的,但是在数据库中进行查询时,却不太一样,在数据库中,我们在创建时,是可以建立特别的索引(简单说就是当我们进行搜索时,数据库会先从这里进行查询,加快我们的查询速度)的,而且还可以避免像我们使用Excel那种查询时,出现的卡顿,无响应情况,Excel每次打开文件,都得把全部数据加载到内存里,数据一多就卡。而数据库是‘按需取数据’——你查什么,它只加载什么,所以哪怕数据量再大,查询也很快。
在数据库中查询数据时,需要通过输入一些查询指令,而且这条指令需要按照一定格式来写(我们叫它SQL),但别担心,我会教你怎么用AI来帮我们做一个图形化的界面,让我们通过输入需要查询的信息,点击查询按钮一键查询就行,甚至可以一键求和,一键求均值,添加日期范围,让我们只查询某个时间范围内,某某某的销售数据,这些在Excel里往往需要复杂的函数、透视表甚至VBA才能实现的操作,在数据库里,通过简单的设置就能自动完成。下一章,我们就一起动手,让AI帮我们做一个这样的查询工具。
而且就数据库而言我们还做一些高级操作,比如通过销售员的工号,快速查询出分散在20张表格里的所有销售记录(比如你按月份拆分的那些报表,假设我们没有合并的情况下)(当然如果数据量比较大的情况下,一样会有查询时间,但是对比Excel而言,快的那也不是一点点),可以快速的做到数据汇总,导出等高级操作。
其实数据库也分好多种,就像我们常用的Excel、Word、PPT一样,各有用处。数据库也一样,常见的有MySQL、PostgreSQL、MongoDB、以及一个大家如果装过Office,那么就会跟着装上去的Access,还有我们今天要说的SQLite。
上述的这些数据库的名称,可能你听过这些名字,感觉都是高大上的东西,平时没有接触过,但是其实吧,它们就像是不同的高级工具:
-
MySQL和 PostgreSQL是那种大型工具箱,功能强大,能同时供很多人一起用(比如公司里的OA系统、ERP系统背后就是它们)。但问题是,它们需要专门安装服务器、配置端口、设置账号密码,还得有人维护,对咱们个人用来说,就像为了钉个钉子,先得买一套工厂级别的设备,太折腾了而且就算我给你们说怎么安装, 你们看了也属于是直接劝退的玩意。
-
MongoDB呢,它有点特别,存的不是表格,而是像JSON格式那样的文档(你可以理解成一个超级灵活的Word文档,里面能随意加段落、列表)。它在处理某些场景的时候确实快,但它的思维方式跟我们熟悉的Excel表格不太一样,学起来得换个脑子,对刚接触数据库的新手来说,也属于是劝退级别。
-
微软的Access呢,这个东西可能有人听说过,它其实是微软 Office 家族的一员,看起来跟 Excel 有点像,大家在装完Office之后就有这个软件了,但是这个软件大家去打开看过吗?当然他与我们的主角SQLite一样,也是单文件(.accdb),好像挺适合新手的。但真用过的朋友估计都深有体会:它的操作界面看着简单,真要建个能用的表、做查询、搞报表,那一套“查询设计器”“宏”“VBA”能把人绕晕。而且 Access 的文件结构不太稳定,数据量一大或者多人同时用,容易损坏,修起来特别麻烦。有人开玩笑说,专门学 Access 的那套操作,还不如直接学几条 SQL 指令来得快——至少 SQL 是通用的,到别的数据库也能用,而 Access 那套玩法,离开 Access 就废了。所以对咱们这种想简简单单管理数据、查询数据的人来说,Access 反而像个坑,看着平,进去就出不来了。
-
而咱们今天的主角 SQLite,它就像一个“单文件版”的数据库工具箱。你不需要安装任何服务器软件,也不用配置什么端口,它就是一个文件(就像Excel的.xlsx文件),你用Python一调用就能用,存数据、查数据都在这个文件里。而且它完全支持我们用Excel思维理解的那套“表、行、列”结构,几乎零学习成本,而且这个数据库你甚至可以把真的当成是一个高级表格,在任何一台电脑上使用我们之后制作的工具,或者支持读取SQLite的软件,就可以类似表格一样打开查看,非常方便。
大家可以想一下我们的实际情况,我们的各种业务数据,因为数据是累积的,越来越多,越来越大,如果光是只是使用Excel来处理,效率低不说,还给自己添堵,增加大家的牛马怨气,但是你要说去专门装一个数据库系统,这和为了一碟醋而去包了一盘饺子,有什么区别,所以对于我们而言SQLite就是最适合我们的(打开即用,一个文件搞定”),这玩意对于我们而言,简直就是一个“高级的Excel”。
等以后咱们玩熟了,想去学习一下其他数据库时,再去看MySQL那些也不迟。但起步阶段,咱们就用SQLite,轻轻松松把数据存起来、查起来,这才是最重要的。
现在我来告诉大家我们如何使用SQLite,其实我们都完全不用管它,比如我们只需要告诉AI,给我写一个通过python创建一张模拟销售系统导出数据的SQLite数据库数据的脚本,我们就可以有一个SQLite数据库文件了:
当然我这个只是一个例子而已,我们其中的字段(也就是我们平时的标题名称),肯定是需要按照我们需要的东西来进行指定的这个放心。
大家可以看看是否和我们的Excel表格挺像,今天的内容,我也保存在网盘(https://pan.baidu.com/s/17xXvcNetRTwSm9BzlEzYIw?pwd=3bid)中了,大家可以自取,去看一下,下一章,我们就来继续扩展我们的软件,让他直接将提取的数据直接存在数据库中!