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编程判断这天是这一年第几天的方法示例
Apr 18 Python
Python字符串拼接六种方法介绍
Dec 18 Python
python3.6 +tkinter GUI编程 实现界面化的文本处理工具(推荐)
Dec 20 Python
解决pandas使用read_csv()读取文件遇到的问题
Jun 15 Python
Python使用爬虫抓取美女图片并保存到本地的方法【测试可用】
Aug 30 Python
python实现RabbitMQ的消息队列的示例代码
Nov 08 Python
python 判断三个数字中的最大值实例代码
Jul 24 Python
centos7中安装python3.6.4的教程
Dec 11 Python
pycharm内无法import已安装的模块问题解决
Feb 12 Python
python 已知三条边求三角形的角度案例
Apr 12 Python
如何在Python3中使用telnetlib模块连接网络设备
Sep 21 Python
Flask response响应的具体使用
Jul 15 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 上传文件类型判断函数(避免上传漏洞 )
2010/06/08 PHP
php引用返回与取消引用的详解
2013/06/08 PHP
Codeigniter(CI)框架分页函数及相关知识
2014/11/03 PHP
Laravel中扩展Memcached缓存驱动实现使用阿里云OCS缓存
2015/02/10 PHP
Laravel框架Request、Response及Session操作示例
2019/05/06 PHP
jquery构造器的实现代码小结
2011/05/16 Javascript
真正的JQuery.ajax传递中文参数的解决方法
2011/05/28 Javascript
nodejs教程之制作一个简单的文章发布系统
2014/11/21 NodeJs
基于BootStrap Metronic开发框架经验小结【九】实现Web页面内容的打印预览和保存操作
2016/05/12 Javascript
浅析jQuery Ajax通用js封装
2016/06/22 Javascript
深入浅出ES6新特性之函数默认参数和箭头函数
2016/08/01 Javascript
Bootstrap Modal遮罩弹出层代码分享
2016/11/21 Javascript
BootStrap 实现各种样式的进度条效果
2016/12/07 Javascript
JS如何生成一个不重复的ID的函数
2016/12/25 Javascript
Vue系列:通过vue-router如何传递参数示例
2017/01/16 Javascript
详解Node.js 命令行程序开发教程
2017/06/07 Javascript
微信小程序下拉菜单效果的实例代码
2019/05/14 Javascript
细说Vue组件的服务器端渲染的过程
2019/05/30 Javascript
layui 对弹窗 form表单赋值的实现方法
2019/09/04 Javascript
vue简单练习 桌面时钟的实现代码实例
2019/09/19 Javascript
Vue.js下拉菜单组件使用方法详解
2019/10/19 Javascript
element-ui table组件如何使用render属性的实现
2019/11/04 Javascript
nodeJs的安装与npm全局环境变量的配置详解
2020/01/06 NodeJs
零基础学Python(一)Python环境安装
2014/08/20 Python
python使用psutil模块获取系统状态
2016/08/27 Python
Ubuntu 16.04 LTS中源码安装Python 3.6.0的方法教程
2016/12/27 Python
Python批量更改文件名的实现方法
2017/10/29 Python
Python基于datetime或time模块分别获取当前时间戳的方法实例
2019/02/19 Python
Amaze UI 文件选择域的示例代码
2020/08/26 HTML / CSS
印度最大的时尚购物网站:Myntra
2018/09/13 全球购物
香港士多网上超级市场:Ztore
2021/01/09 全球购物
学生犯错保证书
2015/05/09 职场文书
小兵张嘎电影观后感
2015/06/03 职场文书
食堂管理制度范本
2015/08/04 职场文书
2016母亲节感恩话语
2015/12/09 职场文书
Spring整合Mybatis的全过程
2021/06/28 Java/Android