推广 热搜: 行业  设备    系统  参数  经纪    教师  机械  中国 

Python数据库操作【三】—— SQLServer

   日期:2024-12-09     作者:gllh1    caijiyuan   评论:0    移动:http://changmeillh.xhstdz.com/mobile/news/10742.html
核心提示:Python数据库操作【三】—— SQLServer数据库以下摘自: SQL Server是由Microsoft开发和推广的关系数据库管理系统(
Python数据库操作【三】—— SQLServer 数据库

以下摘自

Python数据库操作【三】—— SQLServer

SQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS,它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,并于1988年推出了第一个OS/2版本。Microsoft SQL Server近年来不断更新版本,1996年,Microsoft 推出了SQL Server 6.5版本;1998年,SQL Server 7.0版本和用户见面;SQL Server 2000是Microsoft公司于2000年推出,目前最新版本是2019年份推出的SQL SERVER 2019。

SQL Server是微软推出的重量级的数据库,目前有多个版本,如2000、2008、2012等,这些版本名字均为该版本推出的年份,每个版本的差异并不是特别大。本文使用SQL Server2016。

传送门

 

本文代码已上传至GitHub,项目地址如下

https://github.com/XMNHCAS/SQLServerPythonDemo


python内未集成SQLServer的操作库,需要安装pymssql库。

pip3 install pymssql

安装完成后使用import pymssql导入。

pymssql有官方文档,里面有更详细的使用示例,链接地址如下


数据库远程访问配置

使用pymssql访问SQLServer,需要启用SQLServer的TCP/IP协议。

如下图所示,打开SQLServer配置管理器,选择“SQL Server网络配置”中对应的需要使用的实例,在右侧窗口中启用TCP/IP协议。

接着重启SQL Server服务,就可以通过IP的形式访问数据库了。

 服务重启完成后,使用Navicat测试,可以看到连接成功。

新建数据库

新建CreateDatabase.py,使用pymssql创建TestDB数据库。

db.cursor()创建的游标对象,默认返回的是元组,通过设置as_dict=True可以将返回的数据改成字典类型。

如果最后再通过db.commit()来提交事务操作,可能会出现创建数据库失败的情况,故此处设置为autocommit,在游标执行sql的时候就提交操作。

 

运行结果如下

新建数据表 

新建CreateTable.py,使用pymssql在TestDB数据库中新建一个Persons表。

 

运行结果如下

新增记录(Create

使用游标执行插入语句,不同于pymysql,pymssql不会返回游标执行后影响的行数。

而且由于编码问题,pymssql查询出来的中文数据,如果不进行转码则会输出乱码,所以后面均采用循环输出数据,同时将中文数据改成gbk的编码。该乱码问题可以通过设置数据库字段的编码格式的方式来解决,但是会稍微影响数据库存储性能,故此处不进行演示。

此方式支持单条数据插入和批量插入。

 

运行结果如下

检索记录(Retrieve

执行查询语句后,可以使用游标的fetchone方法获取单条数据,也可以使用fetchmany获取指定数量的数据,还可以用fetchall直接获取全部数据。为了结果显示得更加清晰,此处全部使用循环进行数据输出。

 

运行结果如下

更新记录(Update

使用游标执行update语句。此方法支持单条数据修改及批量修改。

 

运行结果如下

删除数据(Delete

使用游标执行delete语句。此方法也支持单条数据删除以及批量删除。

 

运行结果如下

本文地址:http://changmeillh.xhstdz.com/news/10742.html    物流园资讯网 http://changmeillh.xhstdz.com/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。

 
标签: 使用 数据库
 
更多>同类最新文章
0相关评论

文章列表
相关文章
最新动态
推荐图文
最新文章
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号