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中使用Flask、MongoDB搭建简易图片服务器
Feb 04 Python
深入解析Python中的__builtins__内建对象
Jun 21 Python
Python下实现的RSA加密/解密及签名/验证功能示例
Jul 17 Python
Python编程实现使用线性回归预测数据
Dec 07 Python
Python实现将doc转化pdf格式文档的方法
Jan 19 Python
pycharm远程linux开发和调试代码的方法
Jul 17 Python
使用python生成杨辉三角形的示例代码
Aug 29 Python
python 多线程对post请求服务器测试并发的方法
Jun 13 Python
Django框架 信号调度原理解析
Sep 04 Python
Python 字符串、列表、元组的截取与切片操作示例
Sep 17 Python
基于python监控程序是否关闭
Jan 14 Python
Python GUI库Tkiner使用方法代码示例
Nov 27 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
用PHP实现验证码功能
2006/10/09 PHP
java EJB 加密与解密原理的一个例子
2008/01/11 PHP
PHP的RSA加密解密方法以及开发接口使用
2018/02/11 PHP
使用Laravel中的查询构造器实现增删改查功能
2019/09/03 PHP
让回调函数 showResponse 也带上参数的代码
2007/08/13 Javascript
javascript 装载iframe子页面,自适应高度
2009/03/20 Javascript
关于图片的预加载过程中隐藏未知的
2012/12/19 Javascript
jquery打开直接跳到网页最下面、最低端实现代码
2013/04/22 Javascript
理解Javascript闭包
2013/11/01 Javascript
js在数组中删除重复的元素自保留一个(两种实现思路)
2014/08/22 Javascript
基于jQuery实现下拉框
2014/11/24 Javascript
限制上传文件大小和格式的jQuery插件实例
2015/01/24 Javascript
javascript对象的创建和访问
2016/03/08 Javascript
基于JSON格式数据的简单jQuery幻灯片插件(jquery-slider)
2016/08/10 Javascript
JS前端加密算法示例
2016/12/22 Javascript
基于javascript的Form表单验证
2016/12/29 Javascript
backbone简介_动力节点Java学院整理
2017/07/14 Javascript
温故知新——JavaScript中的字符串连接问题最全总结(推荐)
2017/08/21 Javascript
Chart.js 轻量级HTML5图表绘制工具库(知识整理)
2018/05/22 Javascript
JavaScript实用代码小技巧
2018/08/23 Javascript
Vue 一键清空表单的实现方法
2020/02/07 Javascript
OpenLayers3实现地图鹰眼以及地图比例尺的添加
2020/09/25 Javascript
python基于C/S模式实现聊天室功能
2019/01/09 Python
Python3.5面向对象编程图文与实例详解
2019/04/24 Python
python3爬虫学习之数据存储txt的案例详解
2019/04/24 Python
Python利用pandas处理Excel数据的应用详解
2019/06/18 Python
pandas删除行删除列增加行增加列的实现
2019/07/06 Python
浅析python 中大括号中括号小括号的区分
2019/07/29 Python
wxpython实现按钮切换界面的方法
2019/11/19 Python
python闭包、深浅拷贝、垃圾回收、with语句知识点汇总
2020/03/11 Python
Python之字符串的遍历的4种方式
2020/12/08 Python
党员干部承诺书范文
2014/03/25 职场文书
施工安全保证书
2015/05/09 职场文书
2016暑期校本培训心得体会
2016/01/08 职场文书
创业计划书之电动车企业
2019/10/11 职场文书
浅析MongoDB之安全认证
2021/06/26 MongoDB