在Python中,要想方便地操纵数据库通常会借助相关的数据库接口,通常这个python的数据库驱动是需要自己去网上或通过pip下载的,我原本使用 pip install MySQL-python
想直接安装成功,想不到出现好几些错误,于是,趁着刚好是Windows系统,直接去网上搜到了 exe 安装文件,找对自己的版本在以下网站中下载并安装:
- https://pypi.python.org/pypi/MySQL-python //感觉这里不全,或者没找到吧…
http://www.codegood.com/downloads //我是在这下载的惹..
在确保自己安装mysql服务并启动的情况下就可以在Python的交互式界面测试是否安装成功了
测试代码如下:
import MySQLdb //导入mysql-python模块
db = MySQLdb.connect(user = 'root') //以管理员身份连接数据库
cursor = db.cursor() //获取数据库游标
cursor.execute('select version()') //执行SQL语句查询数据库版本
data = cursor.fetchone() //使用游标执行结果中的第一条
print data //打印出来
安装成功如下:
安装成功后就到了使用环节了,想深入了解MySQLdb对象可以使用help()命令,我看那黑框框中乱糟糟的英文看的头疼。本着使用多少学多少的原则,简单来说,想利用python操纵数据库的方式大多都是:
创建connect -> 获取cursor -> 利用cursor执行SQL语句 -> 关闭cursor -> 关闭 connect
创建connect中经常使用的字典参数有:
Name | Type |
---|---|
host | string |
user | string |
passwd | stirng |
db | string |
port | integer |
连接之后就是获取游标了,按照《python核心编程》书上P207,游标(Cursor)的常用属性/方法有:
对象属性 | 描述 |
---|---|
arraysize | 使用fetchmany()方法时,一次取出的结果行数,默认为1 |
connection | 创建此游标的连接(可选) |
description | 返回游标活动状态(7项元祖):(name,type_code,display_size,internal_size(name,type_code,display_size,internal_size, precision,scale,null_ok),只有name和type_code是必选的 |
lastrowid | 上次修改行的行ID(可选,如果不支持行ID,则返回Node) |
rowcount | 上次execute*()方法处理或影响的行数 |
callproc(func [,args]) | 调用存储过程 |
close() | 关闭游标 |
execute(op[,args]) | 执行数据库查询或命令 |
executemany(op,args) | 类似execute和map()的结合,为给定的所有参数准备并执行数据库查询或命令 |
fetchone() | 获取查询结果的下一行 |
fetchmany([size=cursor,arraysize) | 获取查询结果下面的size行 |
fetchall() | 获取查询结果的所有(剩余)行 |
__iter__() | 为游标创建迭代器对象(可选,参考next()) |
messages | 游标执行后从数据库中获得的消息列表(元祖集合,可选) |
next() | 被迭代器用于获取查询结果的下一行(可选,类似fetchone(),参考__iter__()) |
nextset() | 移动到下一个结果集合(如果支持) |
rownumber | 当前结果集中游标的索引(以行为单位,从0开始,可选) |
setinputsizes(sizes) | 设置允许的最大输入大小(必须有,但是实现是可选的) |
setoutputsize(size[,col]) | 设置大列获取的最大缓冲区大小(必须有,但是实现是可选的) |