Python3操作SQL Server数据库(实例讲解)


Posted in Python onOctober 21, 2017

1.前言

前面学完了SQL Server的基本语法,接下来学习如何在程序中使用sql,毕竟不能在程序中使用的话,实用性就不那么大了。

2.最基本的SQL查询语句

python是使用pymssql这个模块来操作SQL Server数据库的,所有需要先安装pymssql。

这个直接在命令行里输入pip install pymssql安装就行了

然后还要配置好自己本地的SQL Server数据库,进入Microsoft SQL Server Management Studio中可以进行设置。如果你选择的是使用Windows身份验证的方式的话,要改成SQL验证方式才行。这个网上教程很多,搜索一下就出来了。

3.简单测试语句

import pymssql

conn = pymssql.connect(host='127.0.0.1',
            user='sa',
            password='123',
            database='SQLTest',
            charset='utf8')

#查看连接是否成功
cursor = conn.cursor()
sql = 'select * from student'
cursor.execute(sql)
#用一个rs变量获取数据
rs = cursor.fetchall()

print(rs)

打开IDLE,新建python程序:

运行结果:

Python3操作SQL Server数据库(实例讲解)

4.提交与回滚

在python中,在操作完 "增删改" 之后,还需要执行commit()才能真正提交代码执行,如果出意外的话就执行rollback()回滚到之前的状态,相当于之前的操作都白做了,这样也保护了数据库。

所以建议写程序这样写:

try:
  conn = pymssql.connect(host='127.0.0.1',
              user='sa',
              password='123',
              database='SQLTest',
              charset='utf8')
  cursor = conn.cursor()
  sql = 'insert into student values('0001', '张三', 18, '男', '文学院')'
  cursor.execute(sql)
  conn.commit()
except Exception as ex:
  conn.rollback()
  raise ex
finally:
  conn.close()

大家可以试一试将conn.commit()删去,然后看看数据库是否有变化。

5.封装成类的写法

'''
  TestDB类
  功能:测试数据库的类写法
  作者:PyLearn
  博客: http://www.cnblogs.com/PyLearn/
  最后修改日期: 2017/10/17
'''
import pymssql

class TestDB():

  def __init__(self):
    try:
      self.conn = pymssql.connect(host='127.0.0.1',
                    user='sa',
                    password='123',
                    database='SQLTest',
                    charset='utf8')
      self.cursor = self.conn.cursor()
      self.sql = "insert into student values('0001', '张三', 18, '男', '文学院')"
      self.cursor.execute(self.sql)
      self.conn.commit()
    except Exception as ex:
      self.conn.rollback()
      raise ex
    finally:
      self.conn.close()

if __name__ == '__main__':
  test_DB = TestDB()

以上这篇Python3操作SQL Server数据库(实例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python使用递归解决全排列数字示例
Feb 11 Python
Python3处理文件中每个词的方法
May 22 Python
python3实现读取chrome浏览器cookie
Jun 19 Python
Python实现树的先序、中序、后序排序算法示例
Jun 23 Python
Python+selenium实现截图图片并保存截取的图片
Jan 05 Python
Python实现PS图像调整之对比度调整功能示例
Jan 26 Python
python for循环输入一个矩阵的实例
Nov 14 Python
Python对excel文档的操作方法详解
Dec 10 Python
python 读取竖线分隔符的文本方法
Dec 20 Python
使用Keras中的ImageDataGenerator进行批次读图方式
Jun 17 Python
Python3.9.1中使用match方法详解
Feb 08 Python
在Python中如何使用yield
Jun 07 Python
Python3实现简单可学习的手写体识别(实例讲解)
Oct 21 #Python
python虚拟环境virtualenv的使用教程
Oct 20 #Python
Python环境搭建之OpenCV的步骤方法
Oct 20 #Python
详解如何用OpenCV + Python 实现人脸识别
Oct 20 #Python
python中的计时器timeit的使用方法
Oct 20 #Python
浅谈Python peewee 使用经验
Oct 20 #Python
Python 获得13位unix时间戳的方法
Oct 20 #Python
You might like
php二维数组排序方法(array_multisort usort)
2013/12/25 PHP
PHP中遇到BOM、编码导致json_decode函数无法解析问题
2014/07/02 PHP
php实现四舍五入的方法小结
2015/03/03 PHP
PHP基于简单递归函数求一个数阶乘的方法示例
2017/04/26 PHP
php实现将数组或对象写入到文件的方法小结【三种方法】
2020/04/22 PHP
JavaScript写的一个自定义弹出式对话框代码
2010/01/17 Javascript
根据IP的地址,区分不同的地区,查看不同的网站页面的js代码
2013/02/26 Javascript
javascript预加载图片、css、js的方法示例介绍
2013/10/14 Javascript
AngularJS入门教程(二):AngularJS模板
2014/12/06 Javascript
浅谈Node.js:Buffer模块
2016/12/05 Javascript
详解vuejs几种不同组件(页面)间传值的方式
2017/06/01 Javascript
js CSS3实现卡牌旋转切换效果
2017/07/04 Javascript
Vue组件化开发思考
2018/02/02 Javascript
微信小程序6位或多位验证码密码输入框功能的实现代码
2018/05/29 Javascript
vue mounted 调用两次的完美解决办法
2018/10/29 Javascript
vue指令之表单控件绑定v-model v-model与v-bind结合使用
2019/04/17 Javascript
javascript实现图片轮播代码
2019/07/09 Javascript
JavaScript在web自动化测试中的作用示例详解
2019/08/25 Javascript
layui table 多行删除(id获取)的方法
2019/09/12 Javascript
js+html实现点名系统功能
2019/11/05 Javascript
[01:12:27]EG vs Secret 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
Python中的列表知识点汇总
2015/04/14 Python
Windows下安装python2和python3多版本教程
2017/03/30 Python
python 使用sys.stdin和fileinput读入标准输入的方法
2018/10/17 Python
Python中无限循环需要什么条件
2020/05/27 Python
分享8款纯CSS3实现的搜索框功能
2017/09/14 HTML / CSS
员工考核评语大全
2014/04/26 职场文书
经典团队口号
2014/06/06 职场文书
幼儿园安全生产月活动总结
2014/07/05 职场文书
行政文员实习自我鉴定范文
2014/09/14 职场文书
学校党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
安全月宣传标语
2014/10/07 职场文书
高校教师个人总结
2015/02/10 职场文书
辞职报告(范文三篇)
2019/08/27 职场文书
读《茶花女》有感:山茶花的盛开与凋零
2020/01/17 职场文书
基于PyQT5制作一个桌面摸鱼工具
2022/02/15 Python