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处理PHP数组文本文件实例
Sep 18 Python
Python中的装饰器用法详解
Jan 14 Python
Python中字符串对齐方法介绍
May 21 Python
详解duck typing鸭子类型程序设计与Python的实现示例
Jun 03 Python
Python中查看文件名和文件路径
Mar 31 Python
Python高级用法总结
May 26 Python
对python插入数据库和生成插入sql的示例讲解
Nov 14 Python
搞清楚 Python traceback的具体使用方法
May 13 Python
Python批量启动多线程代码实例
Feb 18 Python
python之生成多层json结构的实现
Feb 27 Python
Python使用多进程运行含有任意个参数的函数
May 02 Python
python如何做代码性能分析
Apr 26 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 session 预定义数组
2009/03/16 PHP
php模块memcache和memcached区别分析
2011/06/14 PHP
Yii2框架中使用PHPExcel导出Excel文件的示例
2017/08/09 PHP
PHP实现动态获取函数参数的方法示例
2018/04/02 PHP
php操作redis数据库常见方法实例总结
2020/02/20 PHP
6个常见的 PHP 安全性攻击实例和阻止方法
2020/12/16 PHP
JavaScript高级程序设计
2006/12/29 Javascript
关于JavaScript中原型继承中的一点思考
2012/07/25 Javascript
jquery给图片添加鼠标经过时的边框效果
2013/11/12 Javascript
简洁Ajax函数处理(示例代码)
2013/11/15 Javascript
js判断当前浏览器类型,判断IE浏览器方法
2014/06/02 Javascript
用C/C++来实现 Node.js 的模块(二)
2014/09/24 Javascript
node.js中的querystring.unescape方法使用说明
2014/12/10 Javascript
JavaScript实现身份证验证代码
2016/02/17 Javascript
Google 地图类型详解及示例代码
2016/08/06 Javascript
基于JQuery实现的跑马灯效果(文字无缝向上翻动)
2016/12/02 Javascript
微信小程序通过api接口将json数据展现到小程序示例
2017/01/20 Javascript
Bootstrap中data-target 到底是什么
2017/02/14 Javascript
几行js代码实现自适应
2017/02/24 Javascript
JS正则表达式验证账号、手机号、电话和邮箱是否合法
2017/03/08 Javascript
node koa2实现上传图片并且同步上传到七牛云存储
2017/07/31 Javascript
webpack@v4升级踩坑(小结)
2018/10/08 Javascript
Vue 框架之动态绑定 css 样式实例分析
2018/11/14 Javascript
在vue中使用el-tab-pane v-show/v-if无效的解决
2020/08/03 Javascript
Python中的魔法方法深入理解
2014/07/09 Python
django 自定义filter 判断if var in list的例子
2019/08/20 Python
html5 datalist标签使用示例(自动完成组件)
2014/05/04 HTML / CSS
世界上最大的专业美容用品零售商:Sally Beauty
2017/07/02 全球购物
Contém1g官网:巴西彩妆品牌
2020/01/17 全球购物
财务助理岗位职责
2013/11/10 职场文书
信息部岗位职责
2013/11/12 职场文书
促销活动总结范文
2014/04/30 职场文书
2014年乡镇民政工作总结
2014/12/02 职场文书
在校大学生才艺比赛策划书怎么写?
2019/08/26 职场文书
原生Javascript+HTML5一步步实现拖拽排序
2021/06/12 Javascript
MySQL REVOKE实现删除用户权限
2021/06/18 MySQL