python入门23 pymssql模块(python连接sql server增删改数据 )
增删改数据必须connect.commit()才会生效
回滚函数 connect.rollback()
连接数据库
'''
dinghanhua
sql server增删改
''' import pymssql server = '192.168.1.1'
user = 'user'
password = ''
database = 'test' dbconnect = pymssql.connect(server = server,user = user,password=password,database = database) #连接到数据库
修改数据
dbcursor.execute("update test_student set name =%s where sno =1",'peter pan')
dbcursor.execute("update test_student set name =%s where sno =2",'silina smith')
dbconnect.commit() #增删改数据后必须commit
删除数据
dbcursor.execute("delete from test_student where sno =1",'peter pan')
dbconnect.commit() #增删改数据后必须commit
新增数据
dbcursor.execute("insert into test_teacher values(%d,%s,%s)",(2,'xingxing',''))
dbconnect.commit() #增删改数据后必须commit
commit多个
dbcursor.execute("insert into test_teacher values(%d,%s,%s)",(6,'xingxing6',''))
dbcursor.execute("update test_student set name =%s where sno =2",'peter Panpan')
dbconnect.commit() #提交多个
commit之前,游标再执行select取出的都是未提交的数据
rollback()
dbcursor.execute("insert into test_teacher values(%d,%s,%s)",(7,'xingxing7',''))
dbconnect.rollback() #回滚
dbcursor.execute("update test_student set name =%s where sno =2",'peter')
dbconnect.commit() #提交
最后关闭连接
dbcursor.close()
dbconnect.close()
commit之后数据库数据已变更,回滚是无效的,必须commit之前回滚。commit之前可以做下判断。
#避免delete或update未加where语句
with pymssql.connect(server = server,user = user,password=password,database = database) as dbconnect:
with dbconnect.cursor() as dbcursor:
dbcursor.execute("delete from test_teacher") #假设忘记加delete dbcursor.execute("select count(1) from test_teacher") #查询下删除后数据个数
if dbcursor.fetchone()[0] == 0:
dbconnect.rollback() #回滚
else:
dbconnect.commit()
cursor.executemany()
with pymssql.connect(server = server,user = user,password=password,database = database) as dbconnect:
with dbconnect.cursor() as dbcursor:
dbcursor.executemany("insert into test_teacher values (%s,%s,%s)",
[(7,'xx',''),(8,'yy',''),(9,'zz','')])
dbconnect.commit()
with as 替代手工关闭
with pymssql.connect(server = server,user = user,password=password,database = database) as dbconnect:
with dbconnect.cursor(as_dict=True) as dbcursor: dbcursor.execute("insert into test_teacher values(%d,%s,%s)",(7,'xingxing7',''))
dbconnect.rollback() #回滚
dbcursor.execute("update test_student set name =%s where sno =2",'peter234') dbcursor.execute("select * from test_student")
print(dbcursor.fetchall()) #取出的是未提交的数据 dbconnect.commit()
the end!
python入门23 pymssql模块(python连接sql server增删改数据 )的更多相关文章
- Python基于Pymssql模块实现连接SQL Server数据库的方法
首先,安装pymssql第三方库pip install pymssql 其次,导入pymssql库 最后们就可以连接数据库了 import pymssql server = "10.10.9 ...
- Python 学习 第17篇:从SQL Server数据库读写数据
在Python语言中,从SQL Server数据库读写数据,通常情况下,都是使用sqlalchemy 包和 pymssql 包的组合,这是因为大多数数据处理程序都需要用到DataFrame对象,它内置 ...
- SQL Server 增删改
--use用来设置当前使用哪个数据库use StudentDb--go批处理go --T-SQL中不区分大小写,数据库表中的数据是区分大小写的--例如:insert与INSERT不区分大小写,数据库表 ...
- MS SQL Server 增删改查
数据插入 语法:INSERT INTO Table_name(field1,field2……fieldN) values(value1,vlaue2,…valueN) 单行插入用户类型 INSERT ...
- python入门22 pymssql模块(python连接sql server查询)
安装 pip install pymssql 连接数据库 pymssql.connect() # coding:utf-8 import pymssql server = '192.168.8.1' ...
- 连接sql server、插入数据、从数据库获取时间(C#)
using System; using System.Data.SqlClient; namespace Test { //连接数据库 public class Connection { privat ...
- sql server 增删改(查太多了)
表: 学生(*学号,姓名,性别,年龄,专业) create table student( sno ) primary key, sname ) not null, ssex ), sage small ...
- python 使用pymssql连接sql server数据库
python 使用pymssql连接sql server数据库 #coding=utf-8 #!/usr/bin/env python#------------------------------ ...
- python 连接sql server
linux 下pymssql模块的安装 所需压缩包:pymssql-2.1.0.tar.bz2freetds-patched.tar.gz 安装: tar -xvf pymssql-2.1.0.tar ...
随机推荐
- 【研究】curl测试不安全的HTTP请求
漏洞名称: 启用了不安全的HTTP方法 安全风险: 可能会在Web 服务器上上载.修改或删除Web 页面.脚本和文件. 可能原因: Web 服务器或应用程序服务器是以不安全的方 ...
- C++ GUI Qt4编程(13)-6.2preferencedialog
1. 主要介绍了QStackedLayout.QListWidget.QDialogButtonBox的简单用法.2. QStackedLayout: 要使某个特定的子窗口部件可见,可以用setC ...
- 数据插入INSERT
一.INSERT SELECT :将查询的数据直接插入 特点: 1.一次性插入所有查询出来的数据. 2.数据原子性,有一个失败全部失败. 3.没有指定的列加默认值或NULL,都没有就报错. 二.INS ...
- git 填坑之 git 暂存区忽略文件
今天修改公司项目文件的时候,发现被修改的文件的始终不显示已经被修改. 本来是想要把 KWh 改成 kWh,然后执行 git status 后,没有文件修改记录: 开始分析究竟是因为什么导致的这样诡异的 ...
- Linux批量杀掉挂掉的进程
$ `ps aux | grep test | grep -v grep | awk '{print $2}'` 杀掉含有test且不含有grep的进程,后面的 awk '{print $2}' 是进 ...
- (转)Shell中read的用法详解
Shell中read的用法详解 原文:http://blog.csdn.net/jerry_1126/article/details/77406500 read的常用用法如下: read -[pstn ...
- Android ContentProvider的介绍(很详细)
博客分类: android进阶 一.ContentProvider的概念 ContentProvider:为存储和获取数据提供统一的接口.可以在不同的应用程序之间共享数据.Android已经为常见 ...
- Redis启动和关闭
带配置文件启动 ./redis-server redis.conf 关闭 无密码模式 ./redis-cli -h xxx -p xxx shutdown 密码模式 ./redis-cli -h ...
- pat1011. World Cup Betting (20)
1011. World Cup Betting (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Wit ...
- 【OSI】网络协议模型
一.网络相关概念 IP地址: 主机 用于 路由寻址 用的数字标识 域名: 便于IP地址记忆 DNS: 通过注册的 域名 指向 ip 的服务 DDNS: 将用户的动态IP地址映射到一个固定的域名解析服 ...