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 命令行非阻塞输入的小例子
Sep 27 Python
深入理解Python装饰器
Jul 27 Python
Python实现的读写json文件功能示例
Jun 05 Python
python中的插值 scipy-interp的实现代码
Jul 23 Python
python实现支付宝转账接口
May 07 Python
python psutil模块使用方法解析
Aug 01 Python
Python3之字节串bytes与字节数组bytearray的使用详解
Aug 27 Python
python数据库编程 ODBC方式实现通讯录
Mar 27 Python
Xadmin+rules实现多选行权限方式(级联效果)
Apr 07 Python
python 自定义异常和主动抛出异常(raise)的操作
Dec 11 Python
Python基础之数据类型知识汇总
May 18 Python
Python趣味挑战之实现简易版音乐播放器
May 28 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
smarty+adodb+部分自定义类的php开发模式
2006/12/31 PHP
php 攻击方法之谈php+mysql注射语句构造
2009/10/30 PHP
PHP统计二维数组元素个数的方法
2013/11/12 PHP
PHP5.5.15+Apache2.4.10+MySQL5.6.20配置方法分享
2016/05/06 PHP
js GridView 实现自动计算操作代码
2009/03/25 Javascript
Exjs 入门篇
2010/04/07 Javascript
JavaScript中的console.time()函数详细介绍
2014/12/29 Javascript
JS之获取样式的简单实现方法(推荐)
2016/09/13 Javascript
javascript实现滑动解锁功能
2017/03/22 Javascript
Bootstrap响应式导航由768px变成992px的实现代码
2017/06/15 Javascript
js input输入百分号保存数据库失败的解决方法
2018/05/26 Javascript
vue实现点击隐藏与显示实例分享
2019/02/13 Javascript
webpack中如何加载静态文件的方法步骤
2019/05/18 Javascript
ElementUI radio组件选中小改造
2019/08/12 Javascript
[01:01:52]完美世界DOTA2联赛PWL S2 GXR vs Magma 第二场 11.25
2020/11/26 DOTA
python 读写中文json的实例详解
2017/10/29 Python
python 实现读取一个excel多个sheet表并合并的方法
2019/02/12 Python
对Python的多进程锁的使用方法详解
2019/02/18 Python
Python如何处理大数据?3个技巧效率提升攻略(推荐)
2019/04/15 Python
python GUI库图形界面开发之PyQt5多行文本框控件QTextEdit详细使用方法实例
2020/02/28 Python
Django如何在不停机的情况下创建索引
2020/08/02 Python
Raffaello Network德国:意大利拉斐尔时尚购物网
2019/05/01 全球购物
环保建议书100字
2014/05/14 职场文书
土地转让协议书
2014/09/27 职场文书
领导班子作风建设剖析材料
2014/10/11 职场文书
见习报告的格式
2014/11/04 职场文书
学校元旦晚会开场白
2014/12/14 职场文书
2016入党积极分子心得体会
2016/01/06 职场文书
观看《信仰》心得体会
2016/01/15 职场文书
Python Django 后台管理之后台模型属性详解
2021/04/25 Python
教你怎么用Python监控愉客行车程
2021/04/29 Python
vue项目配置sass及引入外部scss文件
2022/04/14 Vue.js
vue-cli3.x配置全局的scss的时候报错问题及解决
2022/04/30 Vue.js
Android 中的类文件和类加载器详情
2022/06/05 Java/Android
在ubuntu下安装go开发环境的全过程
2022/08/05 Golang
MySQL数据管理操作示例讲解
2022/12/24 MySQL