本文实例讲述了Python操作Sql Server 2008数据库的方法。分享给大家供大家参考,具体如下:
最近由于公司的一个项目需要,需要使用Sql Server 2008数据库,开发语言使用Python,并基于windows平台上的Wing IDE4.0进行。
之前并未使用过Sql Server数据库,这次也当作一次练手,并把这次数据库前期开发过程中遇到的一些问题进行记录。
一、关于pyodbc库和pymssql库的选择
在使用python语言进行开发之前,需要确定使用哪种第三方的数据库操作接口,目前Python提供了一些库,如pymssql和pyodbc,目前网上资料比较多的也是这两个了。刚开始我尝试安装并使用了pymssql库,但是始终无法通过python应用程序远程访问连接Sql Server数据库,由于对windows平台又不太熟悉,网上查了一些资料未果,说是需要依赖feeds,还需要设置各种变量等,最终我放弃了它改用pyodbc,虽然也遇到一些小问题,但是总体来说非常顺利。
二、关于pyodbc库的一些接口说明
基于第三方python库来访问Sql Server数据库的过程非常简单(其实除了能访问sql server外,它还可以访问其它数据库,因为它们都基于标准的DB-API2.0标准),总共只需要四步:打开并连接数据库connect、 获取游标指针、执行数据库sql操作、关闭数据库连接
1 打开连接数据库
代码如下:cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=localhost;DATABASE=testdb;UID=me;PWD=pass')
或者是:
代码如下:cnxn = pyodbc.connect(DRIVER='{SQL Server}',SERVER='localhost',DATABASE='testdb',UID='me',PWD='pass')
这里简单说明一下参数:
DRIVER='{SQL Server}'
这个一般是固定的,除非你在Sql Server作了更改。
SERVER:此参数为数据库服务器名称,不是"192.168.0.X"这种,一般在安装时命名好了,我的是:ZHANGHUAMIN/MSSQLSERVER_ZHM
DATABASE:此参数指的是Sql Server内具体的数据库了,使用这个connect接口连接之前在sqlserver内应该是已经先创建好并存在的,否则连接不上。
UID:用户名
PWD:密码
执行完毕后,如果成功将返回一个数据库连接句柄。
2 获取游标指针
cursor = cnxn.cursor()
后面对数据库执行的sql语句将使用游标指针来操作
3 执行数据库sql操作
cursor.execute("select user_id, user_name from users") #调用游标指针的execute方法执行sql语句row = cursor.fetchone() #sql语句执行结果的获取,如果需要一次获取多条记录,可以使用cursor.fetchall()方法if row: print row
有时对数据库执行完sql语句后需要对此事务进行提交,使用如下接口:
cnxn.commit()
特别是当创建一个数据库或数据表,若未进行提交事务,在Sql Server2008终端上将找不到创建的数据库及数据表,如果提交后,在sql server2008通过终端的查询sql 语句就可以即时查到。注:提交事务的
新闻热点
疑难解答