签到成功

知道了

CNDBA社区CNDBA社区

Python连接SQL Server

2019-01-02 15:17 2249 0 原创 python开发 SQL Server
作者: Expect-乐

下面通过一个简单的例子来说明如何连接SQL Server并进行一些常见的操作。Python通过pymssql第三方模块连接SQL Server,并对其进行增删改查相关操作。
pymssql项目地址:https://github.com/pymssql/pymssql

http://www.cndba.cn/Expect-le/article/3220
http://www.cndba.cn/Expect-le/article/3220http://www.cndba.cn/Expect-le/article/3220
http://www.cndba.cn/Expect-le/article/3220
http://www.cndba.cn/Expect-le/article/3220http://www.cndba.cn/Expect-le/article/3220

import pymssql


class sqlserverapi:

    def __init__(self,server='127.0.0.1',user='sa',password='123',dbname='tempdb'):
        self._server = server
        self._user = user
        self._password = password
        self._dbname = dbname

# 这里主要是通过用户名和密码来连接数据库,也可以通过操作系统认证来连接。
    def ExcuteDMLSQL(self,sql):
        """
        执行DML操作
        :return:
        """
        try:
            conn = pymssql.connect(self._server, self._user, self._password, self._dbname)
            cursor = conn.cursor()
            cursor.execute(sql)
            conn.commit()   #这里注意,哪怕执行的DDL操作,也要手动执行提交操作要不,不会提交所执行的操作。除非启用了自动提交。
            conn.close()
            return 'TRUE'
        except pymssql.Error as err:
            print(err)

    def executemanySQL(self):

        try:
            conn = pymssql.connect(self._server, self._user, self._password, self._dbname)
            cursor = conn.cursor()
            cursor.executemany(
                "INSERT INTO lei VALUES (%d, %s, %s, %s)",
                [(1, 'lei', 'sihong','男'),
                 (2, 'yi', 'sihong','女'),
                 (3, 'TOM', 'USA','男')])
            conn.commit()

            cursor.execute('SELECT * FROM lei WHERE sex=%s', '男')
            row = cursor.fetchone()
            while row:
                print("ID=%d, Name=%s" % (row[0], row[1]))
                row = cursor.fetchone()
            conn.close()
            return 'TRUE'
        except pymssql.Error as err:
            print(err)


if __name__ == '__main__':

    sql = """
        IF OBJECT_ID('lei', 'U') IS NOT NULL
          DROP TABLE lei
        CREATE TABLE lei (
            id INT NOT NULL,
            name VARCHAR(100),
            address VARCHAR(100),
            sex char(2),
            PRIMARY KEY(id)
        )
        """
    dbapi = sqlserverapi()
    #创建表
    out = dbapi.ExcuteDMLSQL(sql)
    print(out)
    #一次插入多条数据并查询
    out = dbapi.executemanySQL()
    print(out)

关于该模块的使用,请查看官方文档:http://www.pymssql.orghttp://www.cndba.cn/Expect-le/article/3220

http://www.cndba.cn/Expect-le/article/3220
http://www.cndba.cn/Expect-le/article/3220http://www.cndba.cn/Expect-le/article/3220

版权声明:本文为博主原创文章,未经博主允许不得转载。

python pymssql

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
Expect-乐

Expect-乐

关注

Without the continuous bitter cold, there can be no fragrant plum blossom

  • 336
    原创
  • 6
    翻译
  • 100
    转载
  • 41
    评论
  • 访问:1374305次
  • 积分:1957
  • 等级:核心会员
  • 排名:第3名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ