zoukankan      html  css  js  c++  java
  • python:利用pymssql模块操作SQL server数据库

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

    环境:Windows_64位

    版本:python3.6

     

    一、简单介绍

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

    它们的关系如下:

    具体的内容,可查阅官方文档进行了解:http://pymssql.org/en/stable/index.html

     

    二、下载安装

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

    1、vs+pymssql

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

    FreeTDS下载地址:https://github.com/ramiro/freetds/releases/

    pymssql下载地址:https://pypi.org/project/pymssql/

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

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

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

     

    2、安装.whl包

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

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

    然后可以在python的非官方Windows扩展包站点获取对应的.whl文件,链接:https://www.lfd.uci.edu/~gohlke/pythonlibs/#pymssql

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

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

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

     

    三、连接使用

    1、pymssql工作原理

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

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

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

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

    2、示例代码

     1 # coding=utf-8
     2 import pymssql
     3 
     4 class SQLServer:   
     5     def __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 
    12     def __GetConnect(self):
    13     # 得到数据库连接信息,返回conn.cursor()
    14         if not self.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 not cur:
    19             raise(NameError,"连接数据库失败")  # 将DBC信息赋值给cur
    20         else:
    21             return cur
    22              
    23     def ExecQuery(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         return result
    34 
    35 def 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 = '18501007700' ORDER BY InsertTime DESC")
    38     for (Value) in result:
    39         print(Value)
    40  
    41 if __name__ == '__main__':
    42     main()

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

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

    还有两点:

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

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

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

  • 相关阅读:
    sublime text 4 vim 插件配置
    ssh-keygen 的使用
    distribution transaction solution
    bilibili 大数据 视频下载 you-get
    Deepin 20.2.1 安装 MS SQL 2019 容器版本
    【转】使用Linux下Docker部署MSSQL并加载主机目录下的数据库
    【转】You Can Now Use OneDrive in Linux Natively Thanks to Insync
    dotnet 诊断工具安装命令
    Linux 使用 xrandr 设置屏幕分辨率
    【转】CentOS 7.9 2009 ISO 官方原版镜像下载
  • 原文地址:https://www.cnblogs.com/imyalost/p/8873948.html
Copyright © 2011-2022 走看看