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批量导出导入MySQL用户的方法
Nov 15 Python
python读写文件操作示例程序
Dec 02 Python
Python编程中用close()方法关闭文件的教程
May 24 Python
详细解读Python中解析XML数据的方法
Oct 15 Python
python实现文本去重且不打乱原本顺序
Jan 26 Python
python实现简单中文词频统计示例
Nov 08 Python
PyQt5内嵌浏览器注入JavaScript脚本实现自动化操作的代码实例
Feb 13 Python
Django使用AJAX调用自己写的API接口的方法
Mar 06 Python
浅谈Tensorflow 动态双向RNN的输出问题
Jan 20 Python
Python docutils文档编译过程方法解析
Jun 23 Python
基于Python3读写INI配置文件过程解析
Jul 23 Python
告别网页搜索!教你用python实现一款属于自己的翻译词典软件
Jun 03 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
DOMXML函数笔记
2006/10/09 PHP
PHP图片上传代码
2013/11/04 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十一)
2014/06/25 PHP
PHP6新特性分析
2016/03/03 PHP
javascript OFFICE控件测试代码
2009/12/08 Javascript
基于Jquery的将DropDownlist的选中值赋给label的实现代码
2011/05/06 Javascript
jquery实现图片灯箱明暗的遮罩效果
2013/11/15 Javascript
javascript中定义私有方法说明(private method)
2014/01/27 Javascript
jQuery实现为控件添加水印文字效果(附源码)
2015/12/02 Javascript
Seajs 简易文档 提供简单、极致的模块化开发体验
2016/04/13 Javascript
JS失效 提示HTML1114: (UNICODE 字节顺序标记)的代码页 utf-8 覆盖(META 标记)的冲突的代码页 utf-8
2017/06/23 Javascript
vue中使用ueditor富文本编辑器
2018/02/08 Javascript
vue+element-ui集成随机验证码+用户名+密码的form表单验证功能
2018/08/05 Javascript
JS数组扁平化(flat)方法总结详解
2019/06/24 Javascript
JS替换字符串中指定位置的字符(多种方法)
2020/05/28 Javascript
用Python编写web API的教程
2015/04/30 Python
Python实现的RSS阅读器实例
2015/07/25 Python
Python实现基于KNN算法的笔迹识别功能详解
2018/07/09 Python
PyCharm+PySpark远程调试的环境配置的方法
2018/11/29 Python
对python opencv 添加文字 cv2.putText 的各参数介绍
2018/12/05 Python
python 同时运行多个程序的实例
2019/01/07 Python
tensorflow 固定部分参数训练,只训练部分参数的实例
2020/01/20 Python
Python中的wordcloud库安装问题及解决方法
2020/05/27 Python
HTML5 拖放(Drag 和 Drop)详解与实例代码
2017/09/14 HTML / CSS
澳大利亚天然护肤品、化妆品和健康产品一站式商店:Nourished Life
2018/12/02 全球购物
ANINE BING官方网站:奢华的衣橱基本款和时尚永恒的单品
2019/11/26 全球购物
小学端午节活动方案
2014/03/13 职场文书
中药学专业毕业生推荐信
2014/07/10 职场文书
三八妇女节寄语
2015/02/27 职场文书
工程项目合作意向书
2015/05/08 职场文书
2016年度继续教育学习心得体会
2016/01/19 职场文书
中秋节作文(五年级)之关于月亮
2019/09/11 职场文书
Java 泛型详解(超详细的java泛型方法解析)
2021/07/02 Java/Android
TV动画《政宗君的复仇》第二季制作决定PV公布
2022/04/02 日漫
Redis特殊数据类型HyperLogLog基数统计算法讲解
2022/06/01 Redis
Qt数据库应用之实现图片转pdf
2022/06/01 Java/Android