Python的Mysql编程
系统环境
Fedora 15, MySQL 5.5
安装MySQLdb模块
在Fedora环境下,我们可以很方便的使用强大的yum来安装
$yum install MySQL-python.i686
导入模块
import MySQLdb
操作数据库
1. 连接数据库
conn = MySQLdb.Connection(host='host', user='user', passwd='passwd', db='db')conn = MySQLdb.connect(host='host', user='user', passwd='passwd', db='db')
这两种方法都可以返回连接对象。其中主要使用的参数有:
host,数据库所在的主机,默认是'localhost'
user,登录数据库的用户名,默认是当前用户
passwd,登录数据库的密码,默认为空
db,打开的数据库名,默认无
port,MySQL服务的端口,默认为3306
2. 事务相关
#提交修改conn.commit()#事务回滚conn.rollback()
3.获得游标
cursor = conn.cursor(cursorclass=MySQLdb.cursors.Cursor)
cursorclass参数:
MySQLdb.cursors.Cursor, 默认值,执行SQL语句返回List,每行数据为tuple
MySQLdb.cursors.DictCursor, 执行SQL语句返回List,每行数据为Dict
4. 执行操作
「执行SQL语句」:
cursor.execute(sql, params)
sql,执行的SQL语句,需要参数的地方使用%s
params,1个普通类型或者tuple类型,sql语句中需要的参数
返回受到影响的行数
「调用存储过程」:
cursor.callproc(procname, args)
procname,存储过程的名称
args,传递的参数
返回受到影响的行数
5. 接受返回值
#返回单行数据result = cursor.fetchone()#返回所有数据result = cursor.fetchall()
前面提到,如果获得cursor的时候使用的是MySQLdb.cursors.DictCursor,则返回的每行数据是Dict类型。其中每对键值都是“字段名:数据”
如果前面一次执行了多个select语句,那么sursor会返回多个结果集,cursor提供了对应的方法来移动到下一个结果集
cursor.nextset()
6. 关闭连接
养成良好的习惯,不在使用数据库的时候,及时关闭游标对象和数据库连接对象
cursor.close()conn.close()