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中的高级函数map/reduce使用实例
Apr 13 Python
利用Python中的pandas库对cdn日志进行分析详解
Mar 07 Python
Python装饰器(decorator)定义与用法详解
Feb 09 Python
使用Python实现在Windows下安装Django
Oct 17 Python
Python实现爬取马云的微博功能示例
Feb 16 Python
anaconda中更改python版本的方法步骤
Jul 14 Python
Django框架视图介绍与使用详解
Jul 18 Python
python 使用事件对象asyncio.Event来同步协程的操作
May 04 Python
Python selenium 加载并保存QQ群成员,去除其群主、管理员信息的示例代码
May 28 Python
关于pycharm 切换 python3.9 报错 ‘HTMLParser‘ object has no attribute ‘unescape‘ 的问题
Nov 24 Python
利用python爬取有道词典的方法
Dec 08 Python
Keras在mnist上的CNN实践,并且自定义loss函数曲线图操作
May 25 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
ThinkPHP中处理表单中的注意事项
2014/11/22 PHP
php实现无限级分类
2014/12/24 PHP
php数组随机排序实现方法
2015/06/13 PHP
基于PHP实现数据分页显示功能
2016/05/26 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
2018/06/16 PHP
JavaScript 应用技巧集合[推荐]
2009/08/30 Javascript
JavaScript 函数式编程的原理
2009/10/16 Javascript
10款新鲜出炉的 jQuery 插件(Ajax 插件,有幻灯片、图片画廊、菜单等)
2011/06/08 Javascript
基于JavaScript实现继承机制之原型链(prototype chaining)的详解
2013/05/07 Javascript
Javascript实现真实字符串剩余字数提示的实例代码
2013/10/22 Javascript
教你如何使用PHP输出中文JSON字符串
2014/05/22 Javascript
基于jquery实现省市区三级联动效果
2015/12/25 Javascript
easyui combobox开启搜索自动完成功能的实例代码
2016/11/08 Javascript
vue axios 给生产环境和发布环境配置不同的接口地址(推荐)
2018/05/08 Javascript
使用webpack3.0配置webpack-dev-server教程
2018/05/29 Javascript
纯JS实现的读取excel文件内容功能示例【支持所有浏览器】
2018/06/23 Javascript
详解使用element-ui table组件的筛选功能的一个小坑
2018/11/02 Javascript
[01:03:27]Optic vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
python中实现php的var_dump函数功能
2015/01/21 Python
Python中的异常处理学习笔记
2015/01/28 Python
基于Django的ModelForm组件(详解)
2017/12/07 Python
ubuntu安装mysql pycharm sublime
2018/02/20 Python
tensorflow: variable的值与variable.read_value()的值区别详解
2018/07/30 Python
Django 使用easy_thumbnails压缩上传的图片方法
2019/07/26 Python
Python实现滑动平均(Moving Average)的例子
2019/08/24 Python
基于Pyinstaller打包Python程序并压缩文件大小
2020/05/28 Python
python实现excel公式格式化的示例代码
2020/12/23 Python
深入解析HTML5的IndexedDB索引数据库
2015/09/14 HTML / CSS
土耳其新趋势女装购物网站:Addax
2020/01/07 全球购物
英国礼品和生活方式品牌:Treat Republic
2020/11/21 全球购物
PHP如何防止SQL注入
2014/05/03 面试题
岗位职责定义及内容
2013/11/08 职场文书
公务员更新知识培训实施方案
2014/03/31 职场文书
幼师辞职信范文
2015/02/27 职场文书
2019班干部竞选演讲稿范本!
2019/07/08 职场文书
海康机器人重磅发布全新算法开发平台VM4.2
2022/04/21 数码科技