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备份文件以及mysql数据库的脚本代码
Jun 10 Python
在 Django/Flask 开发服务器上使用 HTTPS
Jul 03 Python
在pycharm中python切换解释器失败的解决方法
Oct 29 Python
Django框架创建项目的方法入门教程
Nov 04 Python
pytorch AvgPool2d函数使用详解
Jan 03 Python
Python如何使用内置库matplotlib绘制折线图
Feb 24 Python
python实现提取COCO,VOC数据集中特定的类
Mar 10 Python
Python2 与Python3的版本区别实例分析
Mar 30 Python
Selenium向iframe富文本框输入内容过程图解
Apr 10 Python
Python+pyftpdlib实现局域网文件互传
Aug 24 Python
用python实现一个简单的验证码
Dec 09 Python
用Python将GIF动图分解成多张静态图片
Jun 11 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
IIS6.0+PHP5.x+MySQL5.x+Zend3.0x+GD+phpMyAdmin2.8x通用安装实例(已经完成)
2006/12/06 PHP
从一个不错的留言本弄的mysql数据库操作类
2007/09/02 PHP
php编程实现获取excel文档内容的代码实例
2011/06/28 PHP
用PHP+MySQL搭建聊天室功能实例代码
2012/08/20 PHP
PHP缓存集成库phpFastCache用法
2014/12/15 PHP
php+mysqli预处理技术实现添加、修改及删除多条数据的方法
2015/01/30 PHP
JSON 编辑器实现代码
2009/12/06 Javascript
Javascript 闭包引起的IE内存泄露分析
2012/05/23 Javascript
左侧是表头的JS表格控件(自写,网上没有的)
2013/06/04 Javascript
js中的onchange和onpropertychange (onchange无效的解决方法)
2014/03/08 Javascript
用原生JS获取CLASS对象(很简单实用)
2014/10/15 Javascript
手机开发必备技巧:javascript及CSS功能代码分享
2015/05/25 Javascript
学习JavaScript设计模式(链式调用)
2015/11/26 Javascript
JS动态改变浏览器标题的方法
2016/04/06 Javascript
JavaScript判断数组是否存在key的简单实例
2016/08/03 Javascript
js通过指定下标或指定元素进行删除数组的实例
2017/01/12 Javascript
使用JS来动态操作css的几种方法
2019/12/18 Javascript
原生JS实现留言板
2020/03/26 Javascript
javascript如何使用函数random来实现课堂随机点名方法详解
2020/07/28 Javascript
Python判断Abundant Number的方法
2015/06/15 Python
Python中表达式x += y和x = x+y 的区别详解
2017/06/20 Python
Python Web程序部署到Ubuntu服务器上的方法
2018/02/22 Python
python批量从es取数据的方法(文档数超过10000)
2018/12/27 Python
对Python模块导入时全局变量__all__的作用详解
2019/01/11 Python
python实现图片二值化及灰度处理方式
2019/12/07 Python
用Python做一个久坐提醒小助手的示例代码
2020/02/10 Python
pycharm 更改创建文件默认路径的操作
2020/02/15 Python
Python爬虫抓取指定网页图片代码实例
2020/07/24 Python
基于Django集成CAS实现流程详解
2020/11/28 Python
Python Socket多线程并发原理及实现
2020/12/11 Python
html5-websocket基于远程方法调用的数据交互实现
2012/12/04 HTML / CSS
创造美妙香氛体验:Aera扩散器和香水
2018/11/25 全球购物
小学生优秀评语大全
2014/04/22 职场文书
党员领导干部承诺书
2014/05/28 职场文书
团干部培训方案
2014/06/03 职场文书
Python 中数组和数字相乘时的注意事项说明
2021/05/10 Python