Python数据库编程入门教程(4)

4)用Python查询数据库中的数据,并压缩Access数据库文件

如果我们要查询2012年1月21日当天,我们所有华为产品的销售情况该如何做?这时我们将传递一句SQL查询至Access数据库,并获得数据库查询所得的结果返回为Python中的变量。

首先,传递SQL查询语句至Access数据库:

>>>cur.execute('''SELECT * FROM saleout WHERE product_name LIKE '%Huawei%'''')

然后,从数据库查询结果抓取结果集的字段名信息:

>>>for d in cur.description:

print d[0],

id customer_name product_name price volume sell_time

交互界面将显示出各字段的名称。我们接下来把结果集一行一行显示在屏幕上:

>>>for row in cur.fetchall():

for field in row:

print field,

print ''

1 江文 Huawei Ascend mate 5000.5 2 2012-01-21 00:00:00

3 郑现实 Huawei Ascend D2 5100.5 1 2012-01-22 00:00:00

4 莫小闵 Huawei Ascend D2 5000.5 1 2012-01-22 00:00:00

5 顾小白 Huawei Ascend mate 5000.5 1 2012-01-22 00:00:00

这样就显示出了所有的结果集。

对于Access数据库,在长久的数据插入使用后,Access数据库文件可能变得非常臃肿庞大。PyPyODBC提供了另一个特色功能,能够直接在Python程序中用代码调用清理压缩数据库。我们现在将D:\salesdb.mdb压缩生成另外一个文件salesdb_backup.mdb:

首先,关闭数据库连接:

>>>conn.close()

然后,使用pypyodbc的win_compact_mdb方法清理压缩数据库文件:

>>>pypyodbc.win_compact_mdb('D:\\salesdb.mdb','D:\\salesdb_backup.mdb')

Python数据库编程入门教程

这时会发现另外一个清理压缩过的文件salesdb_backup.mdb产生在D盘下,这时大小和原来的数据库没有大差别,但在数据库长时间频繁的使用后,压缩清理的效果会非常惊人。

保持成Python程序文件与总结

前面的教程中,我们使用了Python的交互式界面,一行代码一行代码地操纵Python完成了个个步骤。我们可以把这些代码记在一个后缀名为py的文本文件中,这样Python就会按照文本文件中的代码顺序执行。本教程中的代码程序可以在 sales_sample.py 上下载获得。

可能有的读者会提问,这篇教程讲述的是对Access数据库进行操作,其他数据库怎么操作呢?其实,只要你使用的数据库支持ODBC(笔者还没听说过不支持ODBC的关系型数据库),那就可以用pypyodbc对数据库进行操作。pypyodbc目前已知支持的数据库有:Access,SQLServer,MySQL,PostgreSQL甚至,Excel。

还是那句中国古话,师傅领进门,修行靠自身。希望本文能为读者开启一扇Python学用之门。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/0e10c1b773e1ac1641492e7e7cd52158.html