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

作者:PyLearn 时间:2024-01-24 04:13:21 

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

来源:http://www.cnblogs.com/PyLearn/p/7688020.html

标签:Python3,SQLServer,数据库
0
投稿

猜你喜欢

  • python协程之yield和yield from实例详解

    2022-10-31 05:47:42
  • 解决python文件字符串转列表时遇到空行的问题

    2021-06-27 09:18:25
  • Python xmltodict模块安装及代码实例

    2023-05-27 09:25:43
  • python3.6数独问题的解决

    2022-06-21 20:40:32
  • Python中的bytes类型用法及实例分享

    2022-12-19 01:50:42
  • MySQL8重置root账户密码图文教程超详细讲解

    2024-01-25 17:40:55
  • 通过Python实现猜灯谜游戏的示例代码

    2022-01-10 17:49:40
  • python 模拟登陆github的示例

    2022-01-05 17:52:41
  • 重学Go语言之运算符与控制结构详解

    2024-02-07 23:42:06
  • 用ASP读取/写入UTF-8编码格式的文件

    2007-08-20 09:29:00
  • Go语言通过smtp发送邮件的方法

    2024-01-29 19:21:27
  • 通过Cursor工具使用GPT-4的方法详解

    2023-08-28 05:08:34
  • Python实现功能完整的个人员管理程序

    2021-03-26 02:31:15
  • C语言中操作sqlserver数据库案例教程

    2024-01-24 17:47:32
  • JS实现控制表格内指定单元格内容对齐的方法

    2024-04-17 09:42:28
  • golang 字符串比较是否相等的方法示例

    2024-02-05 14:45:07
  • sql无效字符 执行sql语句报错解决方案

    2023-06-24 19:47:45
  • Oracle开发之报表函数

    2023-07-23 16:29:00
  • python中迭代器(iterator)用法实例分析

    2023-12-16 05:32:51
  • python实现自动发送报警监控邮件

    2023-02-02 06:17:15
  • asp之家 网络编程 m.aspxhome.com