利用python实现在SQL Server数据库中的增、删、改、查

本文详细介绍了如何使用Python的pymssql库连接SQLServer数据库,包括安装库、建立连接、执行查询、插入、删除和更新数据的操作步骤。并强调了使用conn.commit()的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本人使用的python开发环境为Spyder,数据库使用SQL Server 2012.至于pycharm也是可以使用的,但是需要激活,比较麻烦。至于MySQL本人没有用过,但是道理是差不多的.

实现python和SQL Server的连接

首先开启TCP/IP 协议,具体方法如图所示:
在这里插入图片描述
然后在控制台中输入pip install pymssql
在这里插入图片描述
安装完成后,打开Spyder,新建.py文件,导入pymssql库

import pymssql

之后连接SQL Server数据库

conn = pymssql.connect(server='DESKTOP-LYZ', user='sa', password='12345', database='test')
cursor = conn.cursor()

“server”指服务器名称,我的是“DESKTOP-LYZ”
在这里插入图片描述
“user”对应在SQL Server 2012的”连接到服务器“面板中“身份验证”选择”SQL Server身份验证“时的登录名(sa),密码也是同样的道理,如果不知道密码可以到SQL Server中找到,此处不赘述。
“database"为要进行操作的数据库名,此处是"test”。
在这里插入图片描述
到此完成python和SQL Server的连接,接下来进入正题。

Select——查

select既是SQL语言中最重要的操作之一,又是检验增删改等其他操作是否成功的语句
在这里插入图片描述
对于表INFO,首先查询表INFO中所有元组的全部信息(Select…From)

sqlQuery = "select * from INFO" #查 (查询语句Query)    
        
try:
   cursor.execute(sqlQuery)
   results = cursor.fetchall()
   print(results)
   print(len(results))#元素个数
except:
   print(results)
conn.close()

查询结果如图所示,元素有四个
查询结果
查询表INFO中满足某个条件元组的信息(Select…From…Where)

sqlQuery = "select * from INFO Where ID = 2" #查(查询语句Query)     
        
try:
   cursor.execute(sqlQuery)
   results = cursor.fetchall()
   print(results)
   print(len(results))#元素个数
except:
   print(results)
conn.close()

查询结果如图所示,元组只有一个
在这里插入图片描述

Insert——增

利用Insert向表中追加元组,向表中追加一个元组(”5“,”zhu,“555”)

param=''
id="5"
name="zhu"
psw="555"
 

sqlNonQuery="insert into INFO values('%s','%s','%s')"%(id,name,psw)  #增(非查询语句NonQuery)
sqlQuery = "select * from INFO" #查(查询语句Query)  
        
try:
   cursor.execute(sqlNonQuery)
   cursor.execute(sqlQuery)
   results = cursor.fetchall()
   print(results)
   print(len(results))
except:
   print(results)
conn.close()

在语句的执行过程中,先利用非查询语句在表中追加元组,然后利用查询语句(Select)输出INFO中的所有元组信息,以检验是否非查询语句是否成功完成。Insert、Delete、Update全部为非查询语句。
查询结果如图所示,有五个元组:
在这里插入图片描述
但是有个问题!
回到SQL Server中,打开INFO表
在这里插入图片描述
INFO表居然还是老样子!!
解决这个问题需要使用conn.commit()执行存储过程,加上这条语句,利用Spyder新增的元组才能加到SQL Server中。

param=''
id="5"
name="zhu"
psw="555"
 

sqlNonQuery="insert into INFO values('%s','%s','%s')"%(id,name,psw)  #增(非查询语句NonQuery)
sqlQuery = "select * from INFO" #查(查询语句Query)  
        
try:
   cursor.execute(sqlNonQuery)
   
   conn.commit()#加上这条语句,利用python新增的元组才能加到SQL Server中。
   
   cursor.execute(sqlQuery)
   results = cursor.fetchall()
   print(results)
   print(len(results))
except:
   print(results)
conn.close()

现在可以了,成功追加元组!
在这里插入图片描述

Delete——删

delete的作用是删除表中的元组,如将ID为1的元组删除

sqlNonQuery="Delete  From  INFO   Where  ID = 1"  #删
sqlQuery = "select * from INFO" #查    
  
try:
   cursor.execute(sqlNonQuery)
   
   conn.commit()#加上这条语句,利用python删除的元组才能从SQL Server去掉。
   
   cursor.execute(sqlQuery)
   results = cursor.fetchall()
   print(results)
   print(len(results))
except:
   print(results)
conn.close()

执行结果如图所示,元组数目由5个变为4个
在这里插入图片描述
使用conn.commit(),保证SQL Server中元组也被删除
在这里插入图片描述

Update——改

update为用指定要求的值更新指定表中满足指定条件的元组的指定列的值,如将ID为4的元组的PSW设为444(之前为999)

sqlNonQuery="Update  INFO   set PSW=444 Where  ID = 4"  #改
sqlQuery = "select * from INFO" #查    
        
try:
   cursor.execute(sqlNonQuery)
   
   conn.commit()#加上这条语句,利用python修改的元组才能在在SQL Server中改变。
   
   cursor.execute(sqlQuery)
   results = cursor.fetchall()
   print(results)
   print(len(results))
except:
   print(results)
conn.close()

执行结果如图所示
在这里插入图片描述
在这里插入图片描述

结语

本人最初使用的python开发环境是pycharm,起初的一些配置是在pycharm之下完成的,后来发现pycharm到期了,所以才采用的Spyder。因此前期配置方面可能存在一些不足。除此之外,本人水平有限,代码拙劣,存在许多不足,敬请批评指正。鞠躬。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值