Python基于Pymssql模块实现连接SQL Server数据库的方法详解


Posted in Python onJuly 20, 2017

本文实例讲述了Python基于Pymssql模块实现连接SQL Server数据库的方法。分享给大家供大家参考,具体如下:

数据库版本:SQL Server 2012

按照Python版本来选择下载pymssql模块,这样才能连接上sql server。

我安装的python版本是3.5 ,64位的,所以下载的pymssql模块是:pymssql-2.1.3-cp35-cp35m-win_amd64.whl

我把文件下载后放到E盘,安装pymssql模块:

C:\Users\Administrator>pip install e:\pymssql-2.1.3-cp35-cp35m-win_amd64.whl
Processing e:\pymssql-2.1.3-cp35-cp35m-win_amd64.whl
Installing collected packages: pymssql
Successfully installed pymssql-2.1.3

一、创建数据库Test、表tb、插入数据

特别需要注意的是:为了避免乱码问题,这里Name列是nvarchar类型的(适合中文),不会出现乱码现象,一开始用的varchar类型出现了乱码。

create database Test;
go
use test;
go
if object_id('tb') is not null
  drop table tb;
go
CREATE TABLE TB(ID INT,NAME NVARCHAR(20),SCORE NUMERIC(10,2));
INSERT INTO TB(ID,NAME,SCORE)
VALUES(1,'语文',100),
   (2,'数学',80),
   (3,'英语',900),
   (4,'政治',65),
   (5,'物理',65),
   (6,'化学',85),
   (7,'生物',55),
   (8,'地理',100)

二、连接数据库、查询、增加、更新数据

connect的参数:

user:用户名
password:密码
trusted:布尔值,指定是否使用windows身份认证登陆
host :主机名
database:数据库
timeout:查询超时
login_timeout:登陆超时
charset:数据库的字符集
as_dict:布尔值,指定返回值是字典还是元组
max_conn:最大连接数

# -*- coding:gbk -*-
import pymssql
#数据库连接
conn=pymssql.connect(host='wc-pc',user='sa',password='ggg',database='Test')
#打开游标
cur=conn.cursor();
if not cur:
  raise Exception('数据库连接失败!')
sSQL = 'SELECT * FROM TB'
#执行sql,获取所有数据
cur.execute(sSQL)
result=cur.fetchall()
#1.result是list,而其中的每个元素是 tuple
print(type(result),type(result[0]))
#2.
print('\n\n总行数:'+ str(cur.rowcount))
#3.通过enumerate返回行号
for i,(id,name,v) in enumerate(result):
  print('第 '+str(i+1)+' 行记录->>> '+ str(id) +':'+ name+ ':' + str(v) )
#4.修改数据
cur.execute("insert into tb(id,name,score) values(9,'历史',75)")
cur.execute("update tb set score=95 where id=7")
conn.commit() #修改数据后提交事务
#再查一次
cur.execute(sSQL)
#5.一次取一条数据,cur.rowcount为-1
r=cur.fetchone()
i=1
print('\n')
while r:
  id,name,v =r #r是一个元祖
  print('第 '+str(i)+' 行记录->>> '+ str(id) +':'+ name+ ':' + str(v) )
  r=cur.fetchone()
  i+= 1
conn.close()

基本的步骤就是:

(1)连接数据库,指定连接参数
(2)打开cursor,执行sql
(3)通过cursor获取数据,具体可以是一次获取所有数据,也可以是一次获取一行。
 整个结果集是元组列表,就是list类型的,而每一条记录是一个tuple,也就是元祖。
(4)如果是增、改数据,必须就要调用commit()函数来提交事务,否则程序已退出,数据库里的数据不会有变化。
(5)最后要用close关闭连接。

运行效果:

Python基于Pymssql模块实现连接SQL Server数据库的方法详解

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python中一些自然语言工具的使用的入门教程
Apr 13 Python
python使用urllib2实现发送带cookie的请求
Apr 28 Python
python爱心表白 每天都是浪漫七夕!
Aug 18 Python
Python3随机漫步生成数据并绘制
Aug 27 Python
Python微信操控itchat的方法
May 31 Python
Python控制Firefox方法总结
Jun 03 Python
python操作文件的参数整理
Jun 11 Python
浅谈python 中类属性共享的问题
Jul 02 Python
python实现遍历文件夹图片并重命名
Mar 23 Python
tensorflow实现从.ckpt文件中读取任意变量
May 26 Python
python爬虫之selenium库的安装及使用教程
May 23 Python
5个pandas调用函数的方法让数据处理更加灵活自如
Apr 24 Python
Python使用内置json模块解析json格式数据的方法
Jul 20 #Python
Python轻量级ORM框架Peewee访问sqlite数据库的方法详解
Jul 20 #Python
Python函数式编程
Jul 20 #Python
python 换位密码算法的实例详解
Jul 19 #Python
python实现rsa加密实例详解
Jul 19 #Python
Python中标准库OS的常用方法总结大全
Jul 19 #Python
spyder常用快捷键(分享)
Jul 19 #Python
You might like
解析Win7 XAMPP apache无法启动的问题
2013/06/26 PHP
js 调用本地exe的例子(支持IE内核的浏览器)
2012/12/26 Javascript
Extjs Gird 支持中文拼音排序实现代码
2013/04/15 Javascript
nodejs读取memcache示例分享
2014/01/02 NodeJs
js创建元素(节点)示例
2014/01/02 Javascript
JavaScript动态改变表格单元格内容的方法
2015/03/30 Javascript
JavaScript中的Math.atan2()方法使用详解
2015/06/15 Javascript
js带缩略图的图片轮播效果代码分享
2015/09/14 Javascript
使用DeviceOne实现微信小程序功能
2016/12/29 Javascript
Angular中的$watch方法详解
2017/09/18 Javascript
JS中Attr的用法详解
2017/10/09 Javascript
node文件批量重命名的方法示例
2017/10/23 Javascript
JS+WCF实现进度条实时监测数据加载量的方法详解
2017/12/19 Javascript
使用 Node.js 开发资讯爬虫流程
2018/01/07 Javascript
JS从非数组对象转数组的方法小结
2018/03/26 Javascript
JavaScript对象拷贝与Object.assign用法实例分析
2018/06/20 Javascript
JS简单判断是否在微信浏览器打开的方法示例
2019/01/08 Javascript
vue+Element实现搜索关键字高亮功能
2019/05/28 Javascript
layui table去掉右侧滑动条的实现方法
2019/09/05 Javascript
vue下载二进制流图片操作
2020/10/26 Javascript
跟老齐学Python之数据类型总结
2014/09/24 Python
Python对多属性的重复数据去重实例
2018/04/18 Python
python之Flask实现简单登录功能的示例代码
2018/12/24 Python
python3用PyPDF2解析pdf文件,用正则匹配数据方式
2020/05/12 Python
Numpy(Pandas)删除全为零的列的方法
2020/09/11 Python
介绍一下linux的文件权限
2014/07/20 面试题
电子信息专业学生自荐信
2013/11/09 职场文书
餐饮主管岗位职责
2013/12/10 职场文书
县优秀教师事迹材料
2014/01/31 职场文书
四年级科学教学反思
2014/02/10 职场文书
《最大的“书”》教学反思
2014/02/14 职场文书
女生节标语
2014/06/26 职场文书
2014年最新离婚协议书范本
2014/10/11 职场文书
2014收银员工作总结范文
2014/12/16 职场文书
二年级上册数学教学计划
2015/01/20 职场文书
高一语文教学反思
2016/02/16 职场文书