增删改数据必须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增删改数据 )的更多相关文章

  1. Python基于Pymssql模块实现连接SQL Server数据库的方法

    首先,安装pymssql第三方库pip install pymssql 其次,导入pymssql库 最后们就可以连接数据库了 import pymssql server = "10.10.9 ...

  2. Python 学习 第17篇:从SQL Server数据库读写数据

    在Python语言中,从SQL Server数据库读写数据,通常情况下,都是使用sqlalchemy 包和 pymssql 包的组合,这是因为大多数数据处理程序都需要用到DataFrame对象,它内置 ...

  3. SQL Server 增删改

    --use用来设置当前使用哪个数据库use StudentDb--go批处理go --T-SQL中不区分大小写,数据库表中的数据是区分大小写的--例如:insert与INSERT不区分大小写,数据库表 ...

  4. MS SQL Server 增删改查

    数据插入 语法:INSERT INTO Table_name(field1,field2……fieldN) values(value1,vlaue2,…valueN) 单行插入用户类型 INSERT ...

  5. python入门22 pymssql模块(python连接sql server查询)

    安装 pip install pymssql 连接数据库 pymssql.connect() # coding:utf-8 import pymssql server = '192.168.8.1' ...

  6. 连接sql server、插入数据、从数据库获取时间(C#)

    using System; using System.Data.SqlClient; namespace Test { //连接数据库 public class Connection { privat ...

  7. sql server 增删改(查太多了)

    表: 学生(*学号,姓名,性别,年龄,专业) create table student( sno ) primary key, sname ) not null, ssex ), sage small ...

  8. python 使用pymssql连接sql server数据库

    python 使用pymssql连接sql server数据库   #coding=utf-8 #!/usr/bin/env python#------------------------------ ...

  9. python 连接sql server

    linux 下pymssql模块的安装 所需压缩包:pymssql-2.1.0.tar.bz2freetds-patched.tar.gz 安装: tar -xvf pymssql-2.1.0.tar ...

随机推荐

  1. 采用MQTT协议实现android消息推送(3)选ActiveMQ当服务端

    官网: http://activemq.apache.org/ 1.简介 强壮.快速.客户端支持多种语言的mqtt服务端软件. 2.特性 MQTT v3.1.AMQP v1.0.Stomp .Open ...

  2. zookeeper+dubbo简单部署方案

    1.zookeeper服务 首先,我们需要下载:zookeeper-3.4.9 解压后,在conf文件夹中添加一个配置文件zoo.cfg,内容如下: tickTime=2000 dataDir=/Us ...

  3. 从零开始学Linux(11)--more

    more命令,是将文件的内容从上到下显示在屏幕上. more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空格键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还 ...

  4. python_面向对象—代码练习

    """注意:代码切勿照搬,错误请留言指出""" import re ''' class Person: name='xxx' age=20 ...

  5. Python+Selenium-BDD框架之behave

    (查看behave具体教程可以访问官网: http://pythonhosted.org/behave/) 1.安装behave 安装好python后,使用 pip install behave命令安 ...

  6. spark ALS 推荐算法参数说明

  7. memcached分布式部署

    memcache和memcached两者使用起来几乎一模一样. $mem = new Memcache; $mem->addServer($memcachehost, '11211'); $me ...

  8. docker 摘要(入门版)

    Docker 安装 macOS或者windows 下载boot2docker工具 CentOS yum install docker-io -y systemctl start docker dock ...

  9. topshelf windows服务

    一 开发: 1.新建控制台程序 2.nuget下载topshelf,根据不同的net版本选择下载版本,本人4.5下载3.3.1 3.main方法中增加 HostFactory.Run(x => ...

  10. mysql 乱码问题的捣鼓

    mysql在ubuntu的终端下出现中文乱码的问题: 先学着在不改数据库的情况下对my.cnf配置文件进行修改, 主要的是设置 default-character-set=utf8 但是设置完后数据库 ...