python调用sql数据库_python:利用pymssql模块操作SQL server数据库

python默认的数据库是 SQLlite,不过它对MySql以及SQL server的支持也可以。这篇博客,介绍下如何在Windows下安装pymssql库并进行连接使用。。。

环境:Windows_64位

版本:python3.6

一、简单介绍

pymssql是一个python的数据库接口,基于FreeTDS构建,对_mssql模块进行了封装,遵循python的DBAPI规范,而FreeTDS是一个C语言连接sqlserver的公共开源库。

它们的关系如下:

983980-20180418132047176-1452295458.png

二、下载安装

有两种安装方式,下面分别介绍:

1、vs+pymssql

983980-20180418133007537-405320841.png

通过官方文档可知,要安装pymssql首先需要安装vs,根据上图,选择自己的python版本对应的vs版本,以及操作系统版本进行安装包下载:

983980-20180418133531949-122500282.png

983980-20180418133806909-801090808.png

下载对应的版本,进行安装,pymssql可以使用pip命令安装,也可以安装包安装,根据个人喜好即可。

安装后,可以通过CMD进入命令行,然后输入 pip show mymssql ,查看是否安装成功,示例如下:

983980-20180418134207305-1713494309.png

PS:这种方法安装,可能会出现一些迷之报错,很蛋疼,如果这种方法安装搞不定的话,可以看下面第二种安装方法。。。

2、安装.whl包

如果认真看过官方文档介绍的童鞋,应该注意到了这里的内容,Windows下可以通过安装.whl包来进行安装pymssql,文档介绍如下:

983980-20180418135237756-1153082499.png

首先通过在python的shell中输入命令 import pip; print(pip.pep425tags.get_supported()) 查看pip支持的文件名和版本,示例如下:

983980-20180418135612299-1821700961.png

进入该站点以后,Ctrl+F搜索pymssql,然后点击,示例如下:

983980-20180418140024490-618947291.png

到达这里,选择你需要的.whl包下载:

983980-20180418140126307-507065360.png

然后进入你的python安装包目录Scripts,利用pip命令,安装即可:

983980-20180418140356924-839481310.png

三、连接使用

1、pymssql工作原理

①、使用connect创建连接对象;

②、connect.cursor创建游标对象,SQL语句的执行在游标上执行;

③、cursor.execute()方法执行SQL语句,cursor.fetch()方法获取查询结果;

④、调用close方法关闭游标cursor和数据库连接;

2、示例代码

1 #coding=utf-8

2 importpymssql3

4 classSQLServer:5 def __init__(self,server,user,password,database):6 #类的构造函数,初始化DBC连接信息

7 self.server =server8 self.user =user9 self.password =password10 self.database =database11

12 def __GetConnect(self):13 #得到数据库连接信息,返回conn.cursor()

14 if notself.database:15 raise(NameError,"没有设置数据库信息")16 self.conn = pymssql.connect(server=self.server,user=self.user,password=self.password,database=self.database)17 cur =self.conn.cursor()18 if notcur:19 raise(NameError,"连接数据库失败") #将DBC信息赋值给cur

20 else:21 returncur22

23 defExecQuery(self,sql):24 '''

25 执行查询语句26 返回一个包含tuple的list,list是元素的记录行,tuple记录每行的字段数值27 '''

28 cur = self.__GetConnect()29 cur.execute(sql) #执行查询语句

30 result = cur.fetchall() #fetchall()获取查询结果

31 #查询完毕关闭数据库连接

32 self.conn.close()33 returnresult34

35 defmain():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 = '18501007700' ORDER BY InsertTime DESC")38 for (Value) inresult:39 print(Value)40

41 if __name__ == '__main__':42 main()

PS:初始化数据库连接信息,数据库地址:server,密码:password,数据库:database!!!

刚开始我个人也是自定义的,后来老报错,查询了配置信息后才搞定,具体的connect信息如下:

983980-20180418184306220-1557820340.png

还有两点:

①、一条游标只能执行一条SQL语句,如果需要执行多条,需要创建多条游标,切记!!!

②、SQL语句中有python默认值(比如index)时,给其加上反引号即可。。。

关于pymssql模块的下载安装以及基础使用,内容如上,仅供参考。。。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值