当前位置: 首页 > news >正文

Python 链接SQL server

Python 链接SQL server

文章目录

  • Python 链接SQL server
      • 一.模块安装
      • 二.链接测试
      • 三.提交与回滚
      • 四.封装成类

一.模块安装

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

pip install pymssql

二.链接测试

import pymssql
 
conn = pymssql.connect(host='127.0.0.1',
            user='sa',
            password='123',
            database='dbtest',
            charset='utf8mp4')
 
#查看连接是否成功
cursor = conn.cursor()
sql = '''select * from student'''
cursor.execute(sql)
#用一个rs变量获取数据
rs = cursor.fetchall()
 
print(rs)

三.提交与回滚

在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()删去,然后看看数据库是否有变化。

四.封装成类

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()

更多参考:

  • 知乎:https://zhuanlan.zhihu.com/p/25207455
  • Python3连接SQLServer、Oracle、MySql的方法

相关文章:

  • django使用原生SQL查询示例
  • SQL server安装教程
  • python (socket)网络编程与并发
  • Linux安装Anaconda和虚拟环境配置
  • 2021最强Python学习教程,从零基础入门到精通
  • 大前端基础学习笔记
  • go语言开发之旅
  • Docker 入门到精通
  • Linux基础学习笔记
  • Python魔法方法(内置方法)合集
  • Django入门到高阶
  • Django-rest-framework框架学习笔记
  • VUE从入门基础学习笔记
  • uni-app入门基础学习
  • 爬虫学习记录
  • 【面试系列】之二:关于js原型
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • maya建模与骨骼动画快速实现人工鱼
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • Redis的resp协议
  • 后端_MYSQL
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 软件开发学习的5大技巧,你知道吗?
  • 微信小程序填坑清单
  • 原生JS动态加载JS、CSS文件及代码脚本
  • Java性能优化之JVM GC(垃圾回收机制)
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • UI设计初学者应该如何入门?
  • ​Java并发新构件之Exchanger
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • ###项目技术发展史
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • #宝哥教你#查看jquery绑定的事件函数
  • (0)Nginx 功能特性
  • (1)bark-ml
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (笔试题)合法字符串
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (三)c52学习之旅-点亮LED灯
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (一)Thymeleaf用法——Thymeleaf简介
  • (一)VirtualBox安装增强功能
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
  • .NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件
  • .NET开发者必备的11款免费工具
  • .NET中 MVC 工厂模式浅析
  • @Service注解让spring找到你的Service bean
  • [ Algorithm ] N次方算法 N Square 动态规划解决
  • [ C++ ] STL---string类的使用指南
  • [ai笔记9] openAI Sora技术文档引用文献汇总
  • [CTO札记]如何测试用户接受度?
  • [Editor]Unity Editor类常用方法
  • [git] windows系统安装git教程和配置