每日一模块——MySQLdb,常用的数据库语句,数据库回滚

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 每日一模块——MySQLdb,常用的数据库语句,数据库回滚

最近在python变成中用到了mysql,虽然很多都查得到,但还是希望对每条语句都有深入的理解。具体实例如下:


1、回滚数据库


cursor = conn.cursor()       #获取游标


cursor.execute(sql)        #执行sql语句


cursor.close()      #关闭游标


conn.commit()       #提交事务


conn.close()        #关闭数据库连接


游标(cursor):是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果。cursor.execute(sql)返回的是sql语句在数据库中影响的行数


游标的主要作用是:用来执行SQL查询,操作SQL查询结果集


注:MYSQL中只有InnoDB和BDB类型的数据表才能支持事务处理,其他的类型是不支持的。


一般MYSQL数据库默认的引擎是MyISAM,这种引擎不支持事务,如果要让MYSQL支持事务,可以自己手动修改:。

1.到MySQL命令窗口中执行,mysql->show engines;(或执行mysql->show variables like 'have_%'; ),查看InnoDB为YES,即表示数据库支持InnoDB了。

也就说明支持事务transaction了。

2.在创建表时,就可以为Storage Engine选择InnoDB引擎了。如果是以前创建的表,可以使用

mysql->alter table table_nametype=InnoDB; 或    mysql->altertable table_name engine=InnoDB;

sql语句就不说明了,增删改查


2、数据库正常的执行步骤:


a)      建立数据库连接,取得Cursor对象


b)     执行sql语句,接收返回值


c)      根据执行情况,提交或者回滚数据库。


d)     关闭Cursor,关闭数据库连接



a)    和数据库建立连接

import MySQLdb
connect = MySQLdb.connect(host = 'localhost', user= 'root', passwd = 'root', db = 'karen')

host:数据库主机名.默认是用本地主机.

user:数据库登陆名.默认是当前用户.

passwd:数据库登陆的秘密.默认为空.

db:要使用的数据库名.没有默认值.

port:MySQL服务使用的TCP端口.默认是3306.


b)    执行sql


cursor = conn.cursor()    #获取游标


cursor.execute(sql)            #执行sql语句


cursor的常用方法:


Ø  execute(self, query, args):执行单条sql语句,接收的参数为sql语句本身和使用的参数列表,返回值为受影响的行数


Ø  nextset(self):移动到下一个结果集


Ø  fetchall(self):接收全部的返回结果行.


c)    提交或回滚数据库


conn.commit()


异常时回滚数据库:conn.rollback()


d)    关闭游标,关闭数据库连接


cursor.close()


conn.close()


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
10天前
|
SQL 关系型数据库 数据库
Python中SQLite数据库操作详解:利用sqlite3模块
【4月更文挑战第13天】在Python编程中,SQLite数据库是一个轻量级的关系型数据库管理系统,它包含在一个单一的文件内,不需要一个单独的服务器进程或操作系统级别的配置。由于其简单易用和高效性,SQLite经常作为应用程序的本地数据库解决方案。Python的内置sqlite3模块提供了与SQLite数据库交互的接口,使得在Python中操作SQLite数据库变得非常容易。
|
4月前
|
运维 Oracle 关系型数据库
LIS实验室信息管理系统功能模块(Oracle数据库、Client/Server架构)
LIS实验室信息管理系统功能模块(Oracle数据库、Client/Server架构)
54 0
|
4月前
|
SQL JSON 关系型数据库
Python 使用SQLAlchemy数据库模块
SQLAlchemy 是用Python编程语言开发的一个开源项目,它提供了SQL工具包和ORM对象关系映射工具,使用MIT许可证发行,SQLAlchemy 提供高效和高性能的数据库访问,实现了完整的企业级持久模型。ORM(对象关系映射)是一种编程模式,用于将对象与关系型数据库中的表和记录进行映射,从而实现通过面向对象的方式进行数据库操作。ORM 的目标是在编程语言中使用类似于面向对象编程的语法,而不是使用传统的 SQL 查询语言,来操作数据库。
42 0
|
10月前
|
存储 JSON 前端开发
Android数据库存储模块封装,让操作记录更好用可复用
Android数据库存储模块封装,让操作记录更好用可复用
|
10月前
|
SQL 存储 缓存
【数据库设计与实现】第二章:数据前像与回滚
数据前像与回滚设计原则事务中重要的一点是事务的原子性,即事务中的所有操作要么全部生效,要么全部都不生效。数据的前像和回滚是保证事务原子性的重要手段。修改记录前,先将记录的前像(即修改前的记录)保存下来,当事务需要回滚时,将记录恢复到前像,从而保证事务的原子性。从当前的实现情况来看,前像保存主要有两种技术手段:本地更新方案:直接在原记录上进行更新,把被更新列的前像保存到独立的undo区域;异地更新方
【数据库设计与实现】第二章:数据前像与回滚
|
11月前
|
SQL 关系型数据库 MySQL
存储模块之mysql数据库
存储模块之mysql数据库
57 0
|
11月前
|
存储 SQL Kubernetes
【数据库自动化测试流程构建】各模块简介
【数据库自动化测试流程构建】各模块简介
130 0
|
Java 编译器 数据库
误用JAVA的异常类导致数据库中的事务不回滚
误用JAVA的异常类导致数据库中的事务不回滚
218 0
|
SQL 存储 缓存
【数据库设计与实现】第二章:数据前像与回滚
数据前像与回滚设计原则事务中重要的一点是事务的原子性,即事务中的所有操作要么全部生效,要么全部都不生效。数据的前像和回滚是保证事务原子性的重要手段。修改记录前,先将记录的前像(即修改前的记录)保存下来,当事务需要回滚时,将记录恢复到前像,从而保证事务的原子性。从当前的实现情况来看,前像保存主要有两种技术手段:本地更新方案:直接在原记录上进行更新,把被更新列的前像保存到独立的undo区域;异地更新方
【数据库设计与实现】第二章:数据前像与回滚
|
SQL 关系型数据库 MySQL
Python编程:MySQLdb模块对数据库的基本增删改查操作
Python编程:MySQLdb模块对数据库的基本增删改查操作
101 1

热门文章

最新文章