Access也是微软Office套餐中的经典产品。虽然在许多人眼里,Access已经是上古时代的产品,但实际上它一直深受好评,并且稳定发展。之所以在许多IT人士眼里,Access不值一提的主要原因恰恰也是它深受非专业人士喜欢的原因:专供非IT人士自用的数据库。
Access生命力强的原因如下:
◆Access聚焦于“自用软件开发”,既然是“自用”,那当然是省却不必要的功能,尽量满足快速开发的那部分框架最好。所以Access对软件的开发性能要求并不高,导致升级动力不强,功能非常稳定。也就是说Access的使用者是自己开发软件给自己用的,个人色彩浓厚,自己种地自己吃,使用越简便越好,技术路线越固定越好。Access功能太强太复杂(比如升级成共享版)反而会造成开发的不方便,违背了软件的初衷。而其它数据库管理系统是对标企业级应用,开发和使用这些软件的用户群体又非常的专业,因此竞争之外需要不断升级改造追求更多的特性,而Access不必如此。
◆Access的使用群体很大很固定也很低调。据估算企业用户就超过14万家,但是曝光率不高,原因是这部分使用群体主要是非IT专业的高级办公软件使用者,是完成业务为目标,并没有上网讨论技术的动力与需求。
◆Access使用的门槛非常低,尤其是可以vba编程和用窗体报表快速做出图形界面是非常关键的两点。在工作实践中,人们发现Access对于非专业编程人员最友好的,是当你需要在代码中写sql语句的时候,可以用它的查询设计先设计好并校验正确,再转到sql视图就可以拷贝出合格的sql语句,这一点确实非常棒。
数据库排行榜的2022年最新排名中,Access仍然在前十之列如下图所示:

Access具体使用,本文不再赘述,主要谈谈如何使用python来操作Access。由于Access对平台有一定的依赖性,所以相关的库较少。一般通过两个库来操作Access:
◆pyodbc。通过上古的ODBC技术来操作Access数据库
◆win32com。这个库的操作方法模拟VBA的风格,与传统的数据库操作差距有些大,不推荐
使用pyodbc访问Access还是需要一些配置工作量的。首先安装相关库。检测当前ODBC环境是否完备。- >>> import pyodbc
- >>> [x for x in pyodbc.drivers() if x.startswith('Microsoft')]
- []
复制代码 返回为空,就说明没有安装相关的驱动程序。需要下载相关驱动并且自行安装。随后创建一个空白的Access文件,假设其文件名为:d:/demo.accdb,相关的示例代码如下:- import random
- from faker import Faker
- import pyodbc
- # 数据库文件
- accessfile = r'D:\demo.accdb'
- # 最高薪资(单位为K)
- maxsalary = 30
- def fakedata(maxtimes):
- # 模拟数据。人名+薪资
- fake = Faker('zh_CN')
- data_total = [[fake.name(), random.randint(0, maxsalary)]
- for x in range(maxtimes)]
- return data_total
- def operator(filename):
- fakesalary = fakedata(100)
- connection = pyodbc.connect(
- r'Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ='+filename+';')
- connection.autocommit = True
- # 创建工资表
- create_table_sql = '''create table salary_table ( id autoincrement primary key, name varchar(255) , salary int ) '''
- # 插入语句
- insert_table_sql = '''insert into salary_table(name, salary) values (?, ?) '''
- # 查询语句
- select_public_servant_sql = '''select * from salary_table where salary > 10 '''
- with connection.cursor() as cursor:
- # DDL
- cursor.execute(create_table_sql)
- # 插入数据
- for info in fakesalary:
- name = info[0]
- pay = info[1]
- cursor.execute(insert_table_sql, (name, pay))
- # 查询之
- cursor.execute(select_public_servant_sql)
- results = cursor.fetchall()
- for row in results:
- print(row)
- operator(accessfile)
复制代码 上述代码将创建表格salary_table,并且将模拟的数据保存到表中。同时,在控制台返回查询的结果。后继的操作与操作其它数据库类似。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |