Python使用pyodbc访问数据库操作方法详解

时间:2021-05-22

本文实例讲述了Python使用pyodbc访问数据库操作方法。

数据库连接

数据库连接网上大致有两种方法,一种是使用pyodbc,另一种是使用win32com.client,测试了很多遍,最终只有pyodbc成功,而且比较好用,所以这里只介绍这种方法

工具库安装

在此基础上安装pyodbc工具库,在cmd窗口执行如下语句安装

pip install pyodbc

如果安装了anaconda也可以使用conda install pyodbc

分享给大家供大家参考,具体如下:

检验是否可以正常连接数据库检查是否有一个Microsoft Access ODBC驱动程序可用于你的Python环境(在Windows上)的方法:

>>> import pyodbc
>>>[x for x in pyodbc.drivers() if x.startswith('Microsoft Access Driver')]

如果你看到一个空列表,那么您正在运行64位Python,并且需要安装64位版本的“ACE”驱动程序。如果您只看到['Microsoft Access Driver (*.mdb)']并且需要使用.accdb文件,那么您需要安装32位版本的“ACE”驱动程序

安装64位的ODBC 驱动器:

64位ODBC驱动器的下载地址 https://mit()函数

6、小窍门

1)由于使用单引号的SQL语句是有效的,那么双引号也同样是有效的:

deleted =cursor.execute("delete from products where id <> 'pyodbc'").rowcount

2)假如你使用的是三引号,那么你也可以这样使用:

deleted =cursor.execute(""" delete from products where id <> 'pyodbc' """).rowcount

3)有些数据库(比如SQL Server)在计数时并没有产生列名,这种情况下,你想访问数据就必须使用下标。当然你也可以使用"as"关键字来取个列名(下面SQL语句的"as name-count")

row =cursor.execute("select count(*) as user_count from users").fetchone()print'%s users' %row.user_count

4)假如你只是需要一个值,那么你可以在同一个行局中使用fetch函数来获取行和第一个列的所有数据。

count =cursor.execute("select count(*) from users").fetchone()[0]print'%s users' %count

如果列为空,将会导致该语句不能运行。fetchone()函数返回None,而你将会获取一个错误:NoneType不支持下标。如果有一个默认值,你能常常使用ISNULL,或者在SQL数据库直接合并NULLs来覆盖掉默认值。

maxid =cursor.execute("select coalesce(max(id), 0) from users").fetchone()[0]

在这个例子里面,如果max(id)返回NULL,coalesce(max(id),0)将导致查询的值为0。

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python+MySQL数据库程序设计入门教程》、《Python常见数据库操作技巧汇总》、《Python数学运算技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章