Python数据库模块pymssql连接SQLServer数据库操作
Python数据库模块pymssql连接SQLServer数据库操作详解
最近需要使用到SQLServer数据库,之前一直使用的是MySQL数据库,我比较喜欢使用Python,之前一直使用的是pymysql作为数据库的操作工具,现在需要换成pymssql了,使用方法大概相同,查资料的过程中发现网上很多资料讲的都是部分的,这里总结了一下最近的操作,详细地给出了操作代码,相信很好看明白,希望能帮到需要的人。
下面是具体的实现:
#!usr/bin/env python
# encoding:utf-8
'''
__Author__:沂水寒城
功能:使用pymssql连接SQLServer测试使用
'''
import sys
import logging
import pymssql
reload(sys)
sys.setdefaultencoding("utf-8")
LOG_FORMAT="%(asctime)s - %(levelname)s - %(message)s"
DATE_FORMAT="%m-%d-%Y %H:%M:%S %p"
logging.basicConfig(filename='SQLServer.log',level=logging.DEBUG,format=LOG_FORMAT,
datefmt=DATE_FORMAT)
#数据库的;连接配置信息
config_dict={
'user':'你的用户名',
'password':'你的密码',
'host':'你要连接的host地址',
'database':'你要操作的数据库'
}
tablename='你要操作的表名'
def SQLServer_connect(config_dict):
'''
SQLServer 数据库连接
'''
connect=pymssql.connect(**config_dict)
print 'Connect Successful!!!'
return connect
def select_k_records(config_dict,tablename,topk=100):
'''
从SQLServer中选取前k条记录
'''
try:
connect=SQLServer_connect(config_dict)
cursor=connect.cursor()
#统计记录数量
result=[]
cursor=connect.cursor()
select_sql='SELECT * FROM %s' %tablename
print 'select_sql is: ',select_sql
cursor.execute(select_sql)
row=cursor.fetchone()
while row:
if len(result)<topk:
result.append(row)
row=cursor.fetchone()
print row
else:
break
print 'result: '
print result
connect.close()
cursor.close()
except Exception, e:
print "elect_sql error: " + e
finally:
connect.close()
return result
def create_new_table(config_dict,tablename):
'''
创建表
'''
connect=SQLServer_connect(config_dict)
cursor=connect.cursor()
#cursor.execute('select * into WZ_cgb_test from WZ_OA_PUBLICOPINION where 1=2')
#省略号替换成自己的字段信息即可
cursor.execute("""
CREATE TABLE %s (
id VARCHAR(32) NOT NULL,
name VARCHAR(255) NULL,
......
PRIMARY KEY(id)
)""" %tablename
)
connect.commit() #记得提交数据库事物操作
connect.close()
cursor.close()
def delete_record(config_dict,delete_sql):
'''
从 SQLServer 中删除数据记录
'''
try:
connect=SQLServer_connect(config_dict)
cursor=connect.cursor()
cursor.execute(delete_sql)
connect.commit()
print 'DeleteOperation Finished!!!'
except Exception, e:
print "delete_sql error: " + e
finally:
connect.close()
def count_records_num(config_dict,tablename):
'''
统计SQLServer中的数据记录数量
'''
try:
connect=SQLServer_connect(config_dict)
cursor=connect.cursor()
totalNum=cursor.rowcount
print 'Total Records Number is: ',str(totalNum)
connect.close()
cursor.close()
except Exception, e:
print "count_sql error: " + e
finally:
connect.close()
return len(result)
def insert_record(config_dict,insert_sql):
'''
向SQLServer中插入数据
'''
try:
connect=SQLServer_connect(config_dict)
cursor=connect.cursor()
cursor.execute(insert_sql)
connect.commit()
print 'InsertOperation Finished!!!'
except Exception, e:
print "insert_sql error: " + e
finally:
connect.close()
if __name__ == "__main__":
count_records_num(config_dict,tablename)
#select_k_records(config_dict,tablename,topk=10)
测试结果如下:
Connect Successful!!!
select_sql is: SELECT * FROM ******
Total Records Number is: 14750
[Finished in 3.3s]
其他的功能也都测试了,这里就不列举了,感兴趣的话可以试试。
数据库的连接配置换成自己的就行了。
标签:
Python基础
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
2019-07-28 基本运算符
2019-07-28 Python中最简单快捷的输出方式
2019-07-28 Python中的boolean类型
2019-07-28 Pycharm 解释器的快捷键