Python操作MySQL,一个常用的方案就是使用MySQLdb库,安装在之前的日志已经介绍过了: Mac下新安装的MySQL无法登陆root用户解决方法
下面我们来看看如何使用Python操作MySQL,基本逻辑分为四个步骤。
包含MySQLdb库
|
|
与MySQL建立连接
|
|
connect()方法用来提供与MySQL的连接,接受多个参数,返回连接的对象: host: 数据库主机名,默认是本地主机 user: 数据库登录用户,默认是当前用户 passwd: 数据库登录密码,默认是空 db: 使用的数据库名,没有默认值 port: MySQL服务使用TCP端口,默认3306
连接对象提供了对事务操作的支持,标准方法有: commit() 提交 插入更新数据的时候一定要执行commit()否则不能真正的插入数据。 rollback() 回滚
运行SQL语句并接受返回值
|
|
我们需要使用连接返回的对象获得一个cursor对象,并使用cursor提供的方法来进行工作。这类方法包括两大类: a) 执行命令 callproc(self, procname, args): 用来执行存储过程,接受的参数为存储过程名和参数列表,返回值为受影响的行数. execute(self, query, args): 执行单条SQL语句,接受的参数为SQL语句本身和使用的参数列表,返回值为受影响的行数. executemany(self, query, args): 执行单条SQL语句,但是重复执行参数列表里的参数,返回值为受影响的行数. nextset(self): 移动到下一个结果集 b) 接受返回值 fetchall(self):接受全部的返回结果行. fetchmany(self, size=None): 接受size调返回结果行,如果size的值大于返回的结果行的数量,则会返回cursor.arraysize条数据 fetchone(self): 返回一条结果航 scroll(self, value, mode=‘relative’): 移动指针到某一行,如果mode=‘relative’,则表示当前所在行移动value条,如果mode=‘absolute’,则表示从结果集的一行移动value条
关闭数据库连接
需要分别关闭指针对象和连接对象,他们有名字相同的方法:
|
|
例子:
|
|
connet()方法中还有一个参数是charset,设置charset是让数据库的编码与自身相同,如果数据库的编码是gb2312,则使用charset=‘gb2312’,如果是utf-8则charset=‘urt8’