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 相关文章推荐
解决pyqt中ui编译成窗体.py中文乱码的问题
Dec 23 Python
wxPython的安装图文教程(Windows)
Dec 28 Python
django.db.utils.ProgrammingError: (1146, u“Table‘’ doesn’t exist”)问题的解决
Jul 13 Python
Sanic框架流式传输操作示例
Jul 18 Python
Python中的元组介绍
Jan 28 Python
Python 实现遥感影像波段组合的示例代码
Aug 04 Python
pytorch 自定义数据集加载方法
Aug 18 Python
Python 单例设计模式用法实例分析
Sep 23 Python
python 浅谈serial与stm32通信的编码问题
Dec 18 Python
django 利用Q对象与F对象进行查询的实现
May 15 Python
用Python制作mini翻译器的实现示例
Aug 17 Python
python 获取剪切板内容的两种方法
Nov 28 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 采集心得技巧
2009/05/15 PHP
PHP扩展编写点滴 技巧收集
2010/03/09 PHP
php+ajax实现的点击浏览量加1
2015/04/16 PHP
PHP实现二维数组按某列进行排序的方法
2016/11/18 PHP
PHPStorm 2020.1 调试 Nodejs的多种方法详解
2020/09/17 NodeJs
一个JavaScript继承的实现
2006/10/24 Javascript
如何编写高质量JS代码(续)
2015/02/25 Javascript
一款简单的jQuery图片标注效果附源码下载
2016/03/22 Javascript
JS正则匹配中文的方法示例
2017/01/06 Javascript
node.js express中app.param的用法详解
2017/07/16 Javascript
详解webpack的配置文件entry与output
2017/08/21 Javascript
Promise.all中对于reject的处理方法
2018/08/01 Javascript
JavaScript 性能提升之路(推荐)
2019/04/10 Javascript
three.js中多线程的使用及性能测试详解
2021/01/07 Javascript
[01:23]一分钟告诉你 DOTA2为什么叫信仰2
2014/06/20 DOTA
详解Python logging调用Logger.info方法的处理过程
2019/02/12 Python
python导入坐标点的具体操作
2019/05/10 Python
python应用文件读取与登录注册功能
2019/09/23 Python
Python爬虫之urllib基础用法教程
2019/10/12 Python
解决springboot yml配置 logging.level 报错问题
2020/02/21 Python
Python如何把十进制数转换成ip地址
2020/05/25 Python
python语言是免费还是收费的?
2020/06/15 Python
使用python实现下载我们想听的歌曲,速度超快
2020/07/09 Python
详解CSS3中border-image的使用
2015/07/18 HTML / CSS
美国知名男士服饰品牌:Brooks Brothers(布克兄弟)
2016/08/25 全球购物
奢华时尚的创新平台:Baltini
2020/10/03 全球购物
查环查孕证明
2014/01/10 职场文书
岗位职责说明书
2014/05/07 职场文书
小学生运动会通讯稿
2014/09/23 职场文书
幸福家庭事迹材料
2014/12/20 职场文书
新学期开学标语2015
2015/07/16 职场文书
2015年大学迎新工作总结
2015/07/16 职场文书
Promise面试题详解之控制并发
2021/05/14 面试题
SQL语句多表联合查询的方法示例
2022/04/18 MySQL
Python 的演示平台支持 WSGI 接口的应用
2022/04/20 Python
OpenFeign实现远程调用
2022/08/14 Java/Android