SQLITE数据库在统计中的应用
2019-07-18陈卫华
□陈卫华
SQLITE是一个轻量级、嵌入式数据库,使用起来非常方便,不需要安装,免费使用。SQLITE非常小,也就几百K,不到1M,可是能力非常强,支持SQL数据库查询语句,有较好的移植性。SQLITE在统计数据整理方面有其突出的优点,一是便利性,软件免安装,不像其他数据库安装较为复杂,直接拷贝就可以了;二是高效性,具备较好的性能,速度比较快,处理数据量较大,可以处理TB级的数据;三是易操作性,支持SQL数据库操作,SQL语句基本符合SQL-92标准;四是实用性,SQLITE在统计业务中是一个非常实用的工具,具有广泛的应用前景。
在统计业务中有大量的时间用在整理数据,现在使用较多的是EXCEL,不过在做较大规模数据整理时EXCEL就显得不够用,有时连数据文件都打不开,这时就要用到数据库系统,如:ORACLE、SYBASE、SQLSERVER、MYSQL等。在处理某个专业或地市一级的数据也可以使用ACCESS、FOXPRO等桌面数据库,经常用到FOXPRO来整理统计数据或汇总数据,为统计分析或资料编印提供基础数据。最近偶尔发现一个免费的数据库——SQLITE,测试了一下1000万条记录也能扛住,汇总20几秒,可以处理TB级的数据。SQLITE是一个轻量级免安装嵌入式数据库,命令行工具只有898k、动态库文件也只有 896k。支持 Android、Linux、Mac OSX、Windows等操作系统,应用广泛。当然用于统计数据整理和汇总也是一个很不错的选择,下面结合实例来介绍一下SQLITE。
SQLITE软件的获取与安装
官 网 地 址 https://www.SQLITE.org,最新版本是2019年2月25日更新的3.27.2版,找到你需要的版本下载,因为我们不做程序开发,而是作为一个工具使用,下载工具就可以了,文件名是sqlite-toolswin32-x86开头的压缩包。由于是免安装,直接解压就可以了,为了使用方便可以在C:盘建立一个目录(如:c:SQLITE3)把解压文件拷入目录下,再建立个搜索路径,修改一下PATH参数,安装就完成了。
怎样使用SQLITE
这个问题比较复杂,须要在网上找些资料来看,再实际操作才能较好地掌握,这里简要介绍一下SQLITE命令行基本命令。使用命令行,效率高,不过对于习惯图形界面的同志可能会排斥命令行形式,其实用习惯就好了。
1.建立数据库。假设建立一个企业数据库,数据库名称叫qyk.db。在建立前最好建立一个目录,比如在E:盘建立一个目录叫pc。
环境准备。启动dos命令窗口,切换工作盘,建立工作目录。
建立数据库。SQLITE3数据库名,用于建立或打开一个已经存在的数据库,如:sqlite3qyk.db。新建立的数据库里面是没有用户表,只有系统表等信息,并进入终端状态,退出终端输入“.quit”。
2.创建表。使用CREATETABLE命令。在命令行键入以下命令,SQL命令以“;”结尾。
例如:
createtableb101(
zzjgmtextprimarykeynotnull,——组织机构码,文本类型 ,主键,不为空
dwmctext,——单位名称,文本类型
hymtext, ——行业代码,文本类型
rysinteger,——人员数,整型
zysrinteger,——主营业务收入,整型
lrzeinteger,——利润总额
zczjinteger——资产总计
);
3.插入数据。使用INSERT命令。例如:
Insert into b101 values(‘123456789’,’江南通用设备制造公 司 ’,’3441’,353,35354,32532,865612);
4.修改数据。使用UPDATE命令,可以修改一条记录,也可以修改多条记录。例如:
图1
图2
updateb101setzczj=865555 wherezzjgm=’123456789’;
5.查询数据。使用select命令可以查询表中的记录,也可以用于汇总,并支持多表查询。例如:
select*fromb101limit10;
6.其他SQL命令。DROP删除表、DELETE删除记录、CREATE INDEX建立索引、ALTERTABLE修改表结构等。
7.其他“.”命令。主要用于非数据库实质性操作的命令。
.tables-查看数据库中表
.headeron——显示字段名
.separator,——数据分割符改为“,”号。
在统计中的实际应用
因为SQLITE是一个数据库,所以具备数据库系统的基本特性,虽然轻量化,其实在数据处理能力上一点也不弱,支持SQL数据库查询语言。包括:create、alter、drop、insert、update、select等,并可以支持子查询。SQLITE在排序、对比、汇总等数据处理方面非常方便。当然如果没有接触过SQL语言还是要花一段时间来学习的。下面结合统计中常用的数据汇总来说明一下SQLITE在统计中的应用。
假设要汇总出某地区某报告期的统计指标,并且要汇总出分行业大类、中类的单位数、亏损企业数、人员数、主营业务收入、利润、亏损企业亏损额、资产等情况。
1.数据准备
单位基础数据。数据可以来源于日常的统计系统或其他数据源,为了展示处理能力,这里准备了一千多万条记录。包括组织机构码(zzjgm)、单位名称(dwmc)、行业码(hym)、人员数(rys)、主营收入(zysr)、利税总额(lrze)、资产总计 (zczj),文 件 名 为 “b101.txt”(图 1)。
汇总分组目录。汇总分组目录主要包含汇总代码(dm),主栏名称(md),序号(xh)等内容,文件名为“fz.txt”(图 2)。
2.创建数据库。创建的数据库名为“qyk.db”
3.创建表。主要是单位基础数据(b101)、汇总分组目录(fz)、汇总表(zb101)和一个视图(vb101),视图主要是把汇总数据与主栏拼接起来。
4.数据导入。数据导入要用到.import命令,把文本文件导入数据库表中。格式是:
.import文本文件名 表名。值得注意的是SQLITE数据库字符集是UTF-8,所以文本文件的字符集也要是UTF-8,如果是GBK文件要转换为UTF-8,不然数据库会乱码,汉字显示不正确。这里的数据文件是b101.txt,汇总分组目录是fz.txt。
5.数据汇总。汇总是通过查询语句实现的,并把查询结果插入到汇总表中。SQLITE的插入语句是支持子查询的,用起来比较方便。示例中包含三个查询语句分别是计算合计数据、按行业大类分组和按行业中类分组。为了执行方便命令写在一个文本文件中(hz101.sql),SQLITE 可以用 .read命令调用执行脚本文件,格式:.read脚本文件名。脚本文件格式如下:
图3
执行脚本文件:
当然,所有的SQLITE命令都是可以写在一个脚本文件中去执行的,如前面创建表的过程。
6.查看汇总结果。通过执行汇总命令汇总表已经汇总好了,汇总出12432192家单位主要经济指标分行业情况。为了查看和使用方便推荐使用第三方可视化管理工具,如:SQLITEExpert。汇总表可以通过复制粘贴的方式,粘贴到EXCEL表中,便于后期使用(图3)。
以上通过一个汇总示例展示了SQLITE在统计中的基本应用,相信SQLITE作为一个轻量级数据库系统,在统计数据处理上有其独到的优势,它与 C、C++、Python、Java、C#、R等开发语言有很好的支持,相信将来在统计系统中会有很好的应用。