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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 每日一模块——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()


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4月前
|
SQL 数据库 微服务
微服务03,最简单的Demo,我们每个服务不能重复开发相同业务,微服务数据独立,不要访问其他微服务的数据库,微服务的特点之一是提供不能功能的数据库互相分割,微服务需要根据业务模块拆分,做到单一职责,
微服务03,最简单的Demo,我们每个服务不能重复开发相同业务,微服务数据独立,不要访问其他微服务的数据库,微服务的特点之一是提供不能功能的数据库互相分割,微服务需要根据业务模块拆分,做到单一职责,
|
5月前
|
存储 关系型数据库 MySQL
|
2月前
|
SQL 关系型数据库 MySQL
学成在线笔记+踩坑(3)——【内容模块】课程分类查询、课程增改删、课程计划增删改查,统一异常处理+JSR303校验
课程分类查询、课程新增、统一异常处理、统一封装结果类、JSR303校验、修改课程、查询课程计划、新增/修改课程计划
学成在线笔记+踩坑(3)——【内容模块】课程分类查询、课程增改删、课程计划增删改查,统一异常处理+JSR303校验
|
2月前
|
前端开发 应用服务中间件 API
|
2月前
|
SQL 监控 关系型数据库
MySQL数据库中如何检查一条SQL语句是否被回滚
检查MySQL中的SQL语句是否被回滚需要综合使用日志分析、事务状态监控和事务控制语句。理解和应用这些工具和命令,可以有效地管理和验证数据库事务的执行情况,确保数据的一致性和系统的稳定性。此外,熟悉事务的ACID属性和正确设置事务隔离级别对于预防数据问题和解决事务冲突同样重要。
79 2
|
4月前
|
数据库 Python
Django数据库类库MySQLdb使用详解
在Django中使用MySQLdb数据库类库,需要遵循以下步骤: 1. 安装MySQLdb:首先,需要在你的Python环境中安装MySQLdb类库。可以使用pip工具进行安装,命令如下:`pip install mysqlclient` 1. 配置Django数据库设置:在Django的settings.py文件中,需要配置DATABASES字典,用于指定使用MySQLdb以及数据库的相关信息。配置样例如下: ``` DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql',
73 3
|
4月前
|
数据库 Python
Django数据库类库MySQLdb使用详解
以上就是在Django中使用MySQLdb数据库类库的详细步骤。
24 1
|
5月前
|
存储 安全 关系型数据库
安全开发-PHP应用&留言板功能&超全局变量&数据库操作&第三方插件引用&后台模块&Session&Cookie&Token&身份验证&唯一性
安全开发-PHP应用&留言板功能&超全局变量&数据库操作&第三方插件引用&后台模块&Session&Cookie&Token&身份验证&唯一性
|
6月前
|
移动开发 前端开发 Java
springboot数据库回滚失败原因
springboot数据库回滚失败原因
49 1
|
5月前
|
Java 关系型数据库 MySQL
使用CAS登录模块连接数据库验证用户合法性
使用CAS登录模块连接数据库验证用户合法性
27 0