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 相关文章推荐
Django静态资源URL STATIC_ROOT的配置方法
Nov 08 Python
在Windows服务器下用Apache和mod_wsgi配置Python应用的教程
May 06 Python
python3新特性函数注释Function Annotations用法分析
Jul 28 Python
python使用numpy读取、保存txt数据的实例
Oct 14 Python
python实现创建新列表和新字典,并使元素及键值对全部变成小写
Jan 15 Python
python 获取等间隔的数组实例
Jul 04 Python
pyinstaller参数介绍以及总结详解
Jul 12 Python
twilio python自动拨打电话,播放自定义mp3音频的方法
Aug 08 Python
Django 简单实现分页与搜索功能的示例代码
Nov 07 Python
Pytorch Tensor的统计属性实例讲解
Dec 30 Python
python基于pexpect库自动获取日志信息
Feb 01 Python
教你如何使用Python下载B站视频的详细教程
Apr 29 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
1982年日本摄影师镜头下的中国孩子 那无忧无虑的童年
2020/03/12 杂记
PHP获取类中常量,属性,及方法列表的方法
2009/04/09 PHP
PHP递归算法的详细示例分析
2013/02/19 PHP
PHP变量赋值、代入给JavaScript中的变量
2015/06/29 PHP
Yii框架表单提交验证功能分析
2017/01/07 PHP
YII框架批量插入数据的方法
2017/03/18 PHP
JQuery实现简单验证码提示解决方案
2012/12/20 Javascript
js向上无缝滚动,网站公告效果 具体代码
2013/11/18 Javascript
js 实现数值的千分位及保存小数方法(推荐)
2016/08/01 Javascript
JS去除字符串中空格的方法
2017/02/14 Javascript
JavaScript字符串_动力节点Java学院整理
2017/06/27 Javascript
谈谈对vue响应式数据更新的误解
2017/08/01 Javascript
原生JS实现的简单小钟表功能示例
2018/08/30 Javascript
微信小程序实现通过双向滑动缩放图片大小的方法
2018/12/30 Javascript
JS实现页面跳转与刷新的方法汇总
2019/08/30 Javascript
基于纯JS实现多张图片的懒加载Lazy过程解析
2019/10/14 Javascript
Vue快速实现通用表单验证的示例代码
2020/01/09 Javascript
微信小程序动态评分展示/五角星展示/半颗星展示/自定义长度展示功能的实现
2020/07/22 Javascript
Vue常用API、高级API的相关总结
2021/02/02 Vue.js
Python编程修改MP3文件名称的方法
2017/04/19 Python
基于python时间处理方法(详解)
2017/08/14 Python
python如何实现内容写在图片上
2018/03/23 Python
Python函数参数操作详解
2018/08/03 Python
利用pyecharts实现地图可视化的例子
2019/08/12 Python
利用python实现PSO算法优化二元函数
2019/11/13 Python
Python MySQL 日期时间格式化作为参数的操作
2020/03/02 Python
浅谈基于Canvas的手绘风格图形库Rough.js
2018/03/19 HTML / CSS
英国美发和美容产品商城:HQhair
2019/02/08 全球购物
美国批发供应商:Kole Imports
2019/04/10 全球购物
什么情况下你必须要把一个类定义为abstract的
2013/01/06 面试题
历史教育专业个人求职信
2013/12/13 职场文书
生产现场禁烟通知
2015/04/23 职场文书
一个都不能少观后感
2015/06/04 职场文书
七年级之开学家长寄语35句
2019/09/05 职场文书
golang switch语句的灵活写法介绍
2021/05/06 Golang
MySQL系列之十四 MySQL的高可用实现
2021/07/02 MySQL