视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Python操作SQLServer数据库的方法
2020-11-27 14:22:39 责编:小采
文档


0.目录

1.前言

2.准备工作

3.简单测试语句

4.提交与回滚

5.封装成类的写法

1.前言

前面学完了SQL Server的基本语法,接下来学习如何在程序中使用sql,毕竟不能在程序中使用的话,实用性就不那么大了。

2.最基本的SQL查询语句

python是使用pymssql这个模块来操作SQL Server数据库的,所有需要先安装pymssql。
这个直接在命令行里输入pip install pymssql安装就行了

然后还要配置好自己本地的SQL Server数据库,进入Microsoft SQL Server Management Studio中可以进行设置。如果你选择的是使用Windows身份验证的方式的话,要改成SQL验证方式才行。这个网上教程很多,搜索一下就出来了。

3.简单测试语句

打开IDLE,新建python程序:

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)

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 exfinally:
 conn.close()

大家可以试一试将conn.commit()删去,然后看看数据库是否有变化。

5.封装成类的写法

''' TestDB类 
功能:测试数据库的类写法 
作者: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()

下载本文
显示全文
专题