Python学习笔记(二十三)数据库访问方法小结

参考资料:
https://www.cnblogs.com/yy3b2007com/p/5716102.html
https://www.cnblogs.com/Leo_wl/p/3288402.html
http://www.lfd.uci.edu/~gohlke/pythonlibs/
通过前面的学习,总结一下Python访问数据库的套路如下:
1、安装与Python版本配套的支持对应数据库访问的connector库,如上一节为了在Windows系统下测试python2.7下访问MySQL的方法,我就下载安装了mysql-connector-python-8.0.11-py2.7-windows-x86-64bit.msi。
2、在Python程序中引用集成了该数据访问方法的connector模块,如mysql.connector。
3、实例化一个connection对象。如conn=mysql.connector.connect(user=username, password=passwd, database = db, use_unicode=True)。
4、获取游标。如cursor=conn.cursor()
5、调用游标的execute方法执行SQL语句。
6、如果是直接返回结果,则调用cursor.fetchall返回结果列表。如果对结果集作特殊处理,可通过for循环访问cursor的每一行。示例代码如下:

values = []
for c in cursor:
     values.append(c[1])
注:cursor的每一行实际上是列表对象,可以下标的方式访问对应列的数据,如c[1]就是访问当前行的第2列。此外,还可以通过下面的方法实现按行访问:
r = cursor.fetchone()
while r:
	values.append(r[1])
	r = cursor.fetchone()

7、调用cursor.close()方法关闭游标。

8、对于事务性数据处理,需要调用conn.commit()方法提交事务。

9、调用conn.close()方法结束数据库访问。

因此,对于不同的数据库,其区别主要在前3个步骤上。如下表所示:
步骤/数据库类型 SQL Server Oracle
connector库名 pymssql cx_oracle
模块引用 import pymssql import cx_oracle
实例化 conn=pymssql.connect(server,user,password,database) conn=cx_oracle.connect(连接串)

关键是第一个步骤,下面以SQL Server为例学习一下。在命令行下执行Python安装目录Scripts目录下的pip命令,如下图所示:

注:如图所示,在安装pymssql时,提示“mysql-connector-python 8.0.11 requires protobuf>=3.0.0, which is not installed.”,所以一并将protobuf进行了安装。关于其他数据库的安装,可从参考资料3上查询。
今天就学习到这里啦,下一节学习适用于多线程模式的数据库连接模块DBUtils及基于它的数据库连接池用法。

猜你喜欢

转载自blog.csdn.net/alvin_2005/article/details/80617697