这几天把python的基本语法都给看了。学一下python下链接数据库的模块。虽然,python支持很多的数据库链接,但是我还是热衷于mysql。所以学习一下python下的MySQLdb模块。


先说一下对于一般的系统或者说工具,链接数据库的话一般都要经历三个过程

  • 第一步,链接数据库
  • 第二步,对数据库进行操纵
  • 第三补,关闭链接

链接数据库

链接mysql的话,MySQLdb模块提供了connect方法

conn = connect(host, user, passwd, db)

链接数据库的时候,host,user,passwd,db是常用的几个connect()参数,但是这不是所有的参数。字符集、线程安全、ssl等也都是很重要的参数,使用时要特别注意。
这样就建立了一个数据库链接。


对数据库进行操作

获取cursor对象来对数据库进行操作

cursor = conn.cursor()

获取游标(游标(cursor)是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果)。
游标的作用是:用来执行SQL查询。

执行sql语句

1.  cursor.execute(sql)
2.  cursor.executemany()

execute方法,执行单条sql语句,调用executemany方法很好用,数据库性能瓶颈很大一部分就在于网络IO和磁盘IO将多个insert放在一起,只执行一次IO,可以有效的提升数据库性能。

提取数据
我们select了数据后,数据存储在游标中,我们需要提取数据。
比如:

sql = "select * from dbname"
cursor.execute(sql)
alldata = cursor.fetchall() #提取所有的检索数据

MySQLdb提供了,游标cursor具有fetchone、fetchmany、fetchall三个方法提取数据,每个方法都会导致游标游动,所以必须关注游标的位置。游标的scroll(value, mode)方法可以使得游标进行卷动,mode参数指定相对当前位置(relative)还是以绝对位置(absolute)进行移动。

Someother Function:
1.commit()
完成查询并作出某些修改后确保已经提交,这样才可以将这些修改真正的保存到文件中去,应该在每次修改数据库后进行commit。当然,也可以在执行了很多次修改后再进行提交,这样可以提升性能。
2.(后续补充)

关闭数据库连接

cursor.close() #关闭游标
conn.close() #关闭连接

python下的MySQLdb模块的话,有很多有用的函数,我们这篇文章仅仅是对其入门,如果想要熟练的掌握MySQLdb还需要进一步的学习。