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的批量远程管理和部署工具Fabric用法实例
Jan 23 Python
Python 的描述符 descriptor详解
Feb 27 Python
Python画图学习入门教程
Jul 01 Python
Python实现的朴素贝叶斯分类器示例
Jan 06 Python
pytorch cnn 识别手写的字实现自建图片数据
May 20 Python
Django 简单实现分页与搜索功能的示例代码
Nov 07 Python
pytorch 使用加载训练好的模型做inference
Feb 20 Python
Django nginx配置实现过程详解
Sep 10 Python
Python3中小括号()、中括号[]、花括号{}的区别详解
Nov 15 Python
Python 生成短8位唯一id实战教程
Jan 13 Python
python tkinter Entry控件的焦点移动操作
May 22 Python
Python超详细分步解析随机漫步
Mar 17 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
《OVERLORD》手游英文版即将上线 手机上也能扮演骨王
2020/04/09 日漫
PHP 和 MySQL 基础教程(四)
2006/10/09 PHP
ThinkPHP CURD方法之table方法详解
2014/06/18 PHP
thinkphp判断访客为手机端或PC端的方法
2014/11/24 PHP
PHP实现恶意DDOS攻击避免带宽占用问题方法
2015/05/27 PHP
windows server 2008/2012安装php iis7 mysql环境搭建教程
2016/06/30 PHP
php实现微信小程序授权登录功能(实现流程)
2019/11/13 PHP
利用XMLHTTP传递参数在另一页面执行并刷新本页
2006/10/26 Javascript
JavaScript模板入门介绍
2012/09/26 Javascript
前台js改变Session的值(用ajax实现)
2012/12/28 Javascript
网页右侧悬浮滚动在线qq客服代码示例
2014/04/28 Javascript
javascript检测是否联网的实现代码
2014/09/28 Javascript
js如何实现点击标签文字,文字在文本框出现
2015/08/05 Javascript
jQuery实现文件上传进度条特效
2015/08/12 Javascript
jQuery使用getJSON方法获取json数据完整示例
2016/09/13 Javascript
微信小程序 picker 组件详解及简单实例
2017/01/10 Javascript
[js高手之路]原型式继承与寄生式继承详解
2017/08/28 Javascript
JavaScript实现随机数生成器(去重)
2017/10/13 Javascript
详解wepy开发小程序踩过的坑(小结)
2019/05/22 Javascript
jQuery单页面文字搜索插件jquery.fullsearch.js的使用方法
2020/02/04 jQuery
详解字典树Trie结构及其Python代码实现
2016/06/03 Python
Django项目中model的数据处理以及页面交互方法
2018/05/30 Python
python 定时器,轮询定时器的实例
2019/02/20 Python
如何使用django的MTV开发模式返回一个网页
2019/07/22 Python
Python tkinter实现图片标注功能(完整代码)
2019/12/08 Python
一文读懂python Scrapy爬虫框架
2021/02/24 Python
化妆师职业生涯规划书
2014/02/16 职场文书
销售人员求职的自我评价分享
2014/03/15 职场文书
史学专业毕业生求职信
2014/05/09 职场文书
慰问信格式
2015/02/14 职场文书
心灵捕手观后感
2015/06/02 职场文书
2015入党自传格式范文
2015/06/26 职场文书
公司人力资源管理制度
2015/08/05 职场文书
美甲店的创业计划书模板
2019/08/23 职场文书
python glom模块的使用简介
2021/04/13 Python
el-table-column 内容不自动换行的解决方法
2022/08/14 Vue.js