python:利⽤pymssql模块操作SQLserver数据库 python默认的数据库是 SQLlite,不过它对MySql以及SQL server的⽀持也可以。这篇博客,介绍下如何在Windows下安装pymssql库并进⾏连接使⽤。。。
环境:Windows_64位
版本:python3.6
⼀、简单介绍
pymssql是⼀个python的数据库接⼝,基于FreeTDS构建,对_mssql模块进⾏了封装,遵循python的DBAPI规范,⽽FreeTDS是⼀个C语⾔连接sqlserver的公共开源库。它们的关系如下:
具体的内容,可查阅官⽅⽂档进⾏了解:
⼆、下载安装
有两种安装⽅式,下⾯分别介绍:
1、vs+pymssql
通过官⽅⽂档可知,要安装pymssql⾸先需要安装vs,根据上图,选择⾃⼰的python版本对应的vs版本,以及操作系统版本进⾏安装包下载:
FreeTDS下载地址:
pymssql下载地址:
下载对应的版本,进⾏安装,pymssql可以使⽤pip命令安装,也可以安装包安装,根据个⼈喜好即可。
connect下载安装后,可以通过CMD进⼊命令⾏,然后输⼊ pip show mymssql ,查看是否安装成功,⽰例如下:
PS:这种⽅法安装,可能会出现⼀些迷之报错,很蛋疼,如果这种⽅法安装搞不定的话,可以看下⾯第⼆种安装⽅法。。。
2、安装.whl包
如果认真看过官⽅⽂档介绍的童鞋,应该注意到了这⾥的内容,Windows下可以通过安装.whl包来进⾏安装pymssql,⽂档介绍如下:
⾸先通过在python的shell中输⼊命令 import pip; print(_supported()) 查看pip⽀持的⽂件名和版本,⽰例如下:
然后可以在python的⾮官⽅Windows扩展包站点获取对应的.whl⽂件,链接:
进⼊该站点以后,Ctrl+F搜索pymssql,然后点击,⽰例如下:
到达这⾥,选择你需要的.whl包下载:
然后进⼊你的python安装包⽬录Scripts,利⽤pip命令,安装即可:
三、连接使⽤
1、pymssql⼯作原理
①、使⽤connect创建连接对象;
②、connect.cursor创建游标对象,SQL语句的执⾏在游标上执⾏;
③、ute()⽅法执⾏SQL语句,cursor.fetch()⽅法获取查询结果;
④、调⽤close⽅法关闭游标cursor和数据库连接;
2、⽰例代码
1# coding=utf-8
2import pymssql
3
4class SQLServer:
5def__init__(self,server,user,password,database):
6# 类的构造函数,初始化DBC连接信息
7        self.server = server
8        self.user = user
9        self.password = password
10        self.database = database
11
12def__GetConnect(self):
13# 得到数据库连接信息,返回conn.cursor()
14if not self.database:
15raise(NameError,"没有设置数据库信息")
16        = t(server=self.server,user=self.user,password=self.password,database=self.database)
17        cur = ursor()
18if not cur:
19raise(NameError,"连接数据库失败")  # 将DBC信息赋值给cur
20else:
21return cur
22
23def ExecQuery(self,sql):
24'''
25执⾏查询语句
26返回⼀个包含tuple的list,list是元素的记录⾏,tuple记录每⾏的字段数值
27'''
28        cur = self.__GetConnect()
29        ute(sql) # 执⾏查询语句
30        result = cur.fetchall() # fetchall()获取查询结果
31# 查询完毕关闭数据库连接
32        lose()
33return result
34
35def main():
36    msg = SQLServer(server="127.0.0.1",user="test",password="Test321",database="TEST")
37    result = msg.ExecQuery("SELECT TOP 1 Value FROM t_Security_Code WHERE Mobile = '185********' ORDER BY InsertTime DESC") 38for (Value) in result:
39print(Value)
40
41if__name__ == '__main__':
42    main()
PS:初始化数据库连接信息,数据库地址:server,密码:password,数据库:database
刚开始我个⼈也是⾃定义的,后来⽼报错,查询了配置信息后才搞定,具体的connect信息如下:
还有两点:
①、⼀条游标只能执⾏⼀条SQL语句,如果需要执⾏多条,需要创建多条游标,切记
②、SQL语句中有python默认值(⽐如index)时,给其加上反引号即可。。。
关于pymssql模块的下载安装以及基础使⽤,内容如上,仅供参考。。。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。