大家好,今天我们就一起聊聊Python“数据库操作”之ODBC。什么是ODBC呢?ODBC即Open DataBase Connection的缩写,意为开放数据库连接,是微软提出的一种数据访问的方法,只要数据库提供了ODBC驱动程序,应用程序就能以ODBC的方式访问数据库中的数据。

为了便于访问数据,WINDOWS系统提供了ODBC数据源管理工具,该工具用来设置数据源的名字DSN(DATA SOURCE NAME)。所谓DSN只不过是一个数据源的标志,设置它的目的是便于应用程序访问数据,也就是说,只要为某个数据库设置了相应的DSN,应用程序就不必理会该数据库存储的位置和驱动程序,可以按DSN直接访问数据库。

DSN有三种类型:用户DSN、系统DSN和文件DSN。用户DSN只对设置它的用户可见,而且只能在设置了该DSN的机器上使用;系统DSN对机器上的所用户都是可见的,包括NT服务;文件DSN将DSN的配置信息存在一个文件里,这样的文件就叫文件DSN。我们一般只需要考虑用户DSN即可。

在Windows中手动添加DSN是很简单,依次点击控制面板-管理工具-数据源,打开下图所示的界面,点击添加,按照提示一步步完成即可。


Python中用来操作ODBC的类库是pypyodbc,该库不是Python内置的,需要我们手动安装,也很简单,在命令行窗口下输入pip install pypyodbc即可,如下图所示,显示出这样的界面表明pypyodbc库已经安装成功。除了使用pypyodbc,大家也可以使用pyodbc,二者没什么区别,pypyodbc是pyodbc的纯python实现,平台移植性更好。


使用pypyodbc库之前,需要采用import语句导入,也很简单。


还记得数据库操作第一步要干什么吗?对了,是建立数据库连接,不过在ODBC里面提供了两种方法:一是直接与数据库连接,二是通过数据源(DSN)与数据库连接,pypyodbc提供了connect方法完成这一操作。


我们注意到connect方法有一个参数connectString(连接字符串),通过使用connectString,便可以连接到ODBC,得到一个Connection对象,之后的操作便和上一篇文章《Python“数据库操作”初窥》中写的一样了,所以重点就是学习如何根据自己的实际情况和需要书写connectString,官网有详细的操作手册 http://www.connectionstrings.com,建议大家好好看看,在此我列出几条常用的备查。






简单解释一下,Uid代表数据库的登录名称,Pwd表示密码,如果没有设置的话就都为空。不过,并不是写好上述语句,就能连接到ODBC,还需看你的Python环境是否支持上述驱动,如何看我们的Python环境支持哪些驱动呢,可以使用下面的代码。


另外,如果使用的是Access的mdb数据库,则还有更简单的方法,pypyodbc为我们提供了两个操作方法。


win_connect_mdb用于连接到mdb数据库;win_create_mdb用于创建mdb数据库,二者的参数都是mdb_path,即数据库所在的路径。

OK,今天的讲解就到这儿,别看篇幅不长,可知识点却多多了,大家一定要多多阅读,好好消化,感谢大家的持续关注,还有更多的Python编程大餐,敬请享用哦!