Python操作Mysql实例代码教程(查询手册)

本文介绍了Python操作MYSQL、执行SQL语句、获取结果集、遍历结果集、取得某个字段、获取表字段名、将图片插入数据库、执行事务等各种代码实例和详细介绍,代码居多,是一桌丰盛唯美的代码大餐。

实例1、取得MYSQL的版本

在windows环境下安装mysql模块用于python开发,请见我的另一篇文章:

MySQL-python Windows下EXE安装文件下载

执行结果:

Database version : 5.5.25

实例2、创建一个表并且插入数据

主要还是在cursor上面执行execute方法来进行,请见源码:

运行结果(在phpmyadmin中查看,在mysql命令行查看结果是一样的):

QQ截图20120608134716

实例3、python使用slect获取mysql的数据并遍历

这个恐怕是用的最多的了,请速看代码:

运行结果:

(1L, ‘Jack London’)
(2L, ‘Honore de Balzac’)
(3L, ‘Lion Feuchtwanger’)
(4L, ‘Emile Zola’)
(5L, ‘Truman Capote’)

上面的代码,用来将所有的结果取出,不过打印的时候是每行一个元祖打印,现在我们使用方法,取出其中的单个数据:

运行结果:

1 Jack London
2 Honore de Balzac
3 Lion Feuchtwanger
4 Emile Zola
5 Truman Capote

 

  • numrows = int(cur.rowcount)用于获取结果集的数目
  • row = cur.fetchone()每次取出一行数据,同时记录集的指针执行下一行

实例4、使用字典cursor取得结果集(可以使用表字段名字访问值)

 

实例5、获取单个表的字段名和信息的方法

运行结果:

cur.description: ((‘Id’, 3, 1, 11, 11, 0, 0), (‘Name’, 253, 17, 25, 25, 0, 1))
Id Name
1 Jack London
2 Honore de Balzac
3 Lion Feuchtwanger
4 Emile Zola
5 Truman Capote

实例6、使用Prepared statements执行查询(更安全方便)

结果:

Number of rows updated: 1

实例7、把图片用二进制存入MYSQL

有人喜欢把图片存入MYSQL(这种做法貌似很少吧),我看大部分的程序,图片都是存放在服务器上的文件,数据库中存的只是图片的地址而已,不过MYSQL是支持把图片存入数据库的,也相应的有一个专门的字段BLOB (Binary Large Object),即较大的二进制对象字段,请看如下程序,注意测试图片自己随便找一个,地址要正确:

首先,在数据库中创建一个表,用于存放图片:

然后运行如下PYTHON代码进行:

结果:

QQ截图20120608144047

 

  • escape_string函数将插入数据库的字符串进行转义,这会指一些SQL注入的攻击

实例8、从数据库中把图片读出来

实例9、使用Transaction即事务(手动提交,自动回滚)

结果:

1、因为不存在writer表(SQL第三条语句),所以出现错误:

Error 1146: Table ‘test.writer’ doesn’t exist

2、出现错误,出发异常处理,3条语句的前两条会自动变成了没有执行,结果不变

3、如果本代码放到一个MyISAM引擎表,前两句会执行,第三句不会;如果是INNDB引擎,则都不会执行。

 

全文完,本文翻译自:http://zetcode.com/databases/mysqlpythontutorial/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蚂蚁学Python

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值