python:数据库链接操做入门

模块说明python

pymssql和pyodbc模块都是经常使用的用于SQL Server、MySQL等数据库的链接及操做的模块,固然一些其余的模块也能够进行相应的操做,相似adodbapi、mssql、mxODBC等,咱们在实际用的时候选择其中一个模块就好,对于每个模块都有相应的支持版本和支持平台,你们能够自行查阅文档https://wiki.python.org/moin/SQL%20Serversql

模块安装 数据库

pip install pymssqlapi

模块使用fetch

  咱们利用python来进行数据库的操做,那么第一步就应该是链接数据库,这里咱们用pymssql模块中的connect方法连链接,在pyodbc模块中一样也是利用connect方法。server

使用connect建立链接对象对象

connect.cursor建立游标对象,SQL语句的执行基本都在游标上进行blog

cursor.executeXXX方法执行SQL语句,cursor.fetchXXX获取查询结果等ip

调用close方法关闭游标cursor和数据库链接文档

pymssql模块链接

pyodbc模块链接

import pyodbc

    conn = pyodbc.connect(r'DRIVER={SQL Server Native Client 11.0};SERVER=test;DATABASE=test;UID=user;PWD=password')

 不一样的SQL server版本对应的DRIVER字段不一样。对应关系以下:

{SQL Server} - released with SQL Server 2000

{SQL Native Client} - released with SQL Server 2005 (also known as version 9.0)

{SQL Server Native Client 10.0} - released with SQL Server 2008

{SQL Server Native Client 11.0} - released with SQL Server 2012

使用pyodbc须要安装微软官方的Native Client(没有安装会报错IM002),安装SQL server management studio会自动附带安装(控制面板里能够看到安装的版本)。若是没有安装过须要在https://msdn.microsoft.com/en-us/data/ff658533.aspx下载安装(sqlncli.msi)。建议选择与远程数据库版本相对应的Native Client。若是本地安装的Native Client是高版本,则DRIVER={SQL Server Native Client 11.0}须要填写的是本地的高版本。

获取数据库内容

这里涉及到游标的使用


fetchone() :返回单个的元组,也就是一条记录(row),若是没有结果 则返回 None

fetchall() :返回多个元组,即返回多个记录(rows),若是没有结果 则返回 ()

因为execute返回的是cursor自己,因此若是你须要一次直接获取全部内容能够直接使用cursor自己来获取

关于游标这里还存在一个要向你们专门说明的地方,

就是一个链接一次只能有一个游标的查询处于活跃状态,具体什么意思你们能够看下面的代码。

提供一个解决的办法


在游标的正常使用中游标获取的查询结果,一行为一个元组。

咱们在实际使用中能够根据需求,用 as_dict 方法返回一个字典变量,其中字典的Key为数据表的列名

你们若是以为上面的代码写起来看上去太长,给你们提供一个代码量小的数据库操做解决办法

就是 with语句,即上下文管理器,它的好处一个是代码的集成度高,一个是省去显示的调用close方法关闭链接和游标

关于数据库的增删改

增删改数据库的内容也是直接传递SQL语句给execute方法。但要注意运行以后须要用commit提交变动