Python学习笔记-SQLSERVER的大批量导入以及日常操作(比executemany快3倍)

 环境 : python3.6 / win10 / vs2017 / sqlserver2017

一、需要安装的包pymssql

pip install pymssql

二、pymssql模块的介绍

pymssql 包 有modules:

  • pymssql – 如果您关注DB-API遵从性,或者如果您习惯于DB-API语法,请使用它。
  • _mssql –  比pymssql更高性能和易用性,性能高出不是一点点,用法也相对简单。

所以我更加推荐使用_mssql,而不是网上案列里比较多的pymssql

三、对_mssql模块的封装

1、简单的执行

复制代码
class C_SQLServer(object):     def __init__(self, Server,user,password,database):         self.Server=Server         self.user=user         self.password=password         self.database=database     #执行无返回操作,适用与(insert,update,delete)    def execute_non_query(self,SQLStr):         conn = _mssql.connect(server=self.Server, user=self.user, password=self.password, database=self.database,charset='utf8')         conn.execute_query(SQLStr)     #执行返回迭代器的操作,迭代器中的行以字典方式展示,适用于(select)    def execute_query(self,SQLStr):         conn = _mssql.connect(server=self.Server, user=self.user, password=self.password, database=self.database,charset='utf8')         conn.execute_query(SQLStr)         return conn     #执行返回单行的字典    def execute_row(self,SQLStr):         conn = _mssql.connect(server=self.Server, user=self.user, password=self.password, database=self.database,charset='utf8')         row=conn.execute_row(SQLStr)         return row     #执行返回单值的操作,适用于返回行计数等    def execute_scalar(self,SQLStr):         conn = _mssql.connect(server=self.Server, user=self.user, password=self.password, database=self.database,charset='utf8')         scalar=conn.execute_scalar(SQLStr)         return scalar     #获取标题,以及标题类型字典    def MSSQL_GetTitleDict(self,conn):         titleDict={}         for rows in conn.get_header():             titleDict[rows[0]]=rows[1]         return titleDict
复制代码

四、对于大批量Insert的操作

pymssql的模块提供了executemany来执行大批量的导入。

导入列表里的元素行为Tuple,类似 DataList=[(1,2),(2,3)]

50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信