Pyhton 操作MySQL数据库
MySQL数据库的接口程序下载地址:https://sourceforge.net/projects/mysql-python/
操作数据库的大致步骤如下:
1:首先先创建一个数据库的连接对象connection;
2:然后用连接对象创建游标对象;
3:用游标对象操作数据库(比如:增删查改);
4:最后提交事务或回滚事务。
连接对象connection有以下方法:
cursor() ------------------------------- 创建并返回游标
commit() ------------------------------- 提交当前事务
rollback() ------------------------------- 回滚当前事务
close() -------------------------------- 关闭连接
游标对象cursor有以下方法:
execute() --------------------------------- 执行数据库查询和命令
fetchone() --------------------------------- 取得结果集的下一行
fetchmany() --------------------------------- 取得结果集的下几行
fetchall() --------------------------------- 取得结果集中剩下的所有行
rowcount --------------------------------- 最近一次execute()返回数据的行数或影响行数
close() --------------------------------- 关闭游标对象
提交事务:当你操作了数据库(增删查改)之后,就一定要提交事务,不然你之前的操作不会有结果。
回滚事务:如果操作数据库出现异常的时候,就可以用回滚事务,使之恢复到没有操作数据库之前。
下面用代码来加深理解:
#-*- coding:utf-8 -*-
import MySQLdb
con = MySQLdb.Connect(
host = "你的数据库主机地址",
user = "你的数据库用户名",
passwd = "你的数据库密码",
db = "你的数据库名",
port = 3306,
charset = "编码类型"
)
cur = con.cursor()
上面创建了连接对象,然后用连接对象创建了游标对象,步骤1、2就完成了。接着来操作数据库,这是我数据库一个表(user)的数据:

接着代码:
sql = "select * from user" cur.execute(sql) print cur.rowcount print cur.fetchone() print cur.fetchmany(1) print cur.fetchall() cur.close() con.close()
打印结果如下:
3
(u'name1', u'1')
((u'name2', u'2'),)
((u'name3', u'3'),)
我想代码不言而明,因为里面代码的一些方法在上面已经告知了用处。注意:操作完后要关闭游标对象和连接对象(用close()方法)
接着操作,增:
sql = 'inser into user(username, password) values("name4","4")'
cur.execute(sql)
cur.close()
con.close()
运行上面代码发现数据库并没有增加记录(自动提交已关闭),这时就要提交事务(用commit()方法),在上面代码的第三行加上这句代码:con.commit()并运行代码发现数据库添加了一条记录。如图:

-------------------接下来的改和删就不演示了,改下SQL语句就可以的,接下来看下回滚事务-------------------------------
insert_sql = 'insert into user(username, password) values("name5", "5")'
del_sql = "delete from user where word='5'"
try:
cur.execute(insert_sql)
cur.execute(del_sql)
con.commit()
except:
con.rollback()
cur.close()
con.close()
上面代码有两个SQL语句,一个是增加username=name5,password=5,一个是删除word字段等于5的记录,但是我的表中并没有word这个字段。所以增的语句会执行成功,删的语句会执行失败。我把执行这两条语句放到try块里,全部执行成功就提交事务,一旦哪条执行失败就捕获错误并回滚事务。运行了代码后发现,数据库不变。这里虽然增执行成功了,但在删执行失败了,就回滚了事务。所以回滚事务就恢复到了没有操作数据库之前(这里就是没有执行增之前),所以数据库的数据不变。
操作数据库并不难,只要你会SQL语句!
Pyhton 操作MySQL数据库的更多相关文章
- PHP操作MySQL数据库5个步骤
PHP操作MySQL数据库一般可分为5个步骤:1.连接MySQL数据库服务器:2.选择数据库:3.执行SQL语句:4.关闭结果集:5断开与MySQL数据库服务器连接. 1.用mysql_connect ...
- python操作mysql数据库的相关操作实例
python操作mysql数据库的相关操作实例 # -*- coding: utf-8 -*- #python operate mysql database import MySQLdb #数据库名称 ...
- 转 用C API 操作MySQL数据库
用C API 操作MySQL数据库 参考MYSQL的帮助文档整理 这里归纳了C API可使用的函数,并在下一节详细介绍了它们.请参见25.2.3节,“C API函数描述”. 函数 描述 mysql_a ...
- PHP操作mysql数据库:[2]查询数据听语音
本文主要详细讲解如何使用php语言,对mysql数据库进行查询.添加.删除.更新等操作. 工具/原料 Macromedia Dreamweaver 8 mysql数据库,php语言 一.前言 ...
- Code First操作Mysql数据库
前面博客也讲了,自己做一个网站,选用的是MVC+EF Code First+MySql+EasyUI,先说下技术选型.一.为什么选择MVC? 因为之前自己做的系统大部分是webForm,MVC的之前也 ...
- JDBC操作MySQL数据库案例
JDBC操作MySQL数据库案例 import java.sql.Connection; import java.sql.DriverManager; import java.sql.Prepared ...
- shell脚本操作mysql数据库
shell脚本操作mysql数据库,使用mysql的-e参数可以执行各种sql的(创建,删除,增,删,改.查)等各种操作 mysql -hhostname -Pport -uusername -pp ...
- Java使用Jdbc操作MySql数据库(一)
这个示例是Java操作MySql的基本方法. 在这个示例之前,要安装好MySql,并且配置好账户密码,创建一个logininfo数据库,在数据库中创建userinfo数据表.并且在表中添加示例数据. ...
- 使用node js 操作 Mysql 数据库
使用node js 操作 Mysql 数据库 http://www.nodejs.org/ //node js 数据库操作 MySQL //使用https://github.com/felixge/n ...
随机推荐
- 黑马程序员_Java基础组成
Java语言基础组成 2.1关键字 main不是关键字,但被JVM所识别的名称. 关键字的定义和特点 定义:被Java语言赋予了特殊含义的单词. 特点:关键字中所有字母都为小写. 用于定义数据类型的关 ...
- 将使用netTcp绑定的WCF服务寄宿到IIS7上全记录 (这文章也不错)
原文地址:http://www.cnblogs.com/wengyuli/archive/2010/11/22/wcf-tcp-host-to-iis.html 摘要 在项目开发中,我们可能会适时的选 ...
- 【树形动态规划】【CTSC1997】选课 解题报告
CTSC1997-选课 描述 学校实行学分制.每门的必修课都有固定的学分,同时还必须获得相应的选修课程学分.学校开设了N(N<300)门的选修课程,每个学生可选课程的数量M是给定的.学生选修了这 ...
- 使用 FreeMarker 替换 JSP 的 10 个理由
你还在使用 Java 服务器页面(俗称JSP)吗?我曾经也是,但是几年前我抛弃了它们,并且再也没有用过JSP了.JSP 是个很好的概念,但是它却剥夺了 web 开发的乐趣. 对我而言,这些都是小事,比 ...
- hdu 1292分组(dp)
考虑一支队伍分组的数目,如果这支队伍有n个人,就有n种情况分别是一个组,两个组.... i个人分成j组有两种方式,一种是i-1个人分成j-1组之后,第i个人独立分成一组,另一种情况是i-1个人分成j组 ...
- 297 - Quadtrees (UVa)
Quadtrees A quadtree is a representation format used to encode images. The fundamental idea behind t ...
- 关于Hibemate
1.Hibernate定位 HIbernate是一款实现了ORM思想的框架 JDO TOpLink 2.HIbernate初次解释 Hibernate:冬眠,蛰伏 和持久化有关系 将内存中data持久 ...
- motan源码分析四:客户端调用服务
在第一章中,我们分析了服务的发布与注册,本章中将简单的分析一下客户端调用服务的代码及流程,本文将以spring加载的方式进行分析. 1.在DemoRpcClient类的main()方法中加载类: Ap ...
- 遍历INI文件和删除指定域内容
主要还是使用的INI文件操作的API,只是把参数修改下. BOOL WINAPI WritePrivateProfileString( __in LPCTSTR lpAppName, __in LPC ...
- 推荐一款不错的dialog小工具:artDialog
推荐一款不错的dialog小工具, 地址:http://www.planeart.cn/demo/artDialog/_doc/labs.html 相关介绍例如以下: artDialog是一个基于ja ...