在iPython中植入MySQLdb
###操作前的准备####
importMySQLdb
conn=MySQLdb.connect(host="localhost",user="root",passwd="619523",db="zx_wor",charset="utf8")##利用MySQLdb建立一个连接对象conn;
cur=conn.cursor()##利用连接对象得到游标对象cur;
连接对象常用的方法:
commit() | 如果数据库表进行了修改,提交保存当前的数据。当然,如果此用户没有权限就作罢了,什么也不会发生。 |
rollback() | 如果有权限,就取消当前的操作,否则报错 |
cursor([cursorclass]) | 返回连接的游标对象。通过游标执行 SQL 查询并检查结果。游标比连接支持更多的方法,而且可能在程序中更好用 |
close() | 关闭连接。此后,连接对象和游标都不再可用了 |
此后,就可以通过操作游标对象cur对数据库进行操作,常用的游标对象的操作方法:
close() | 关闭游标。之后游标不可用 |
execute(query[,args]) | 执行一条 SQL 语句,可以带参数 |
executemany(query, pseq) | 对序列 pseq 中的每个参数执行 sql 语句 |
fetchone() | 返回一条查询结果 |
fetchall() | 返回所有查询结果 |
fetchmany([size]) | 返回 size 条结果 |
nextset() | 移动到下一个结果 |
scroll(value,mode='relative') | 移动游标到指定行,如果 mode='relative',则表示从当前所在行移动 value 条,如果 mode='absolute',则表示从结果集的第一行移动 value |
查询:
cur.execute('select Name,Continent,Population,LifeExpectancy,GNP from country')
cur.fetchall()##得到的是一个元组,里面的元素是一个个的元组
原来,用 cur.execute() 从数据库查询出来的东西,被“保存在了 cur 所能找到的某个地方”,要找出这些被保存的东西,需要用 cur.fetchall()(或者 fechone 等),并且找出来之后,做为对象存在。从上面的实验探讨发
现,被保存的对象是一个 tuple 中,里面的每个元素,都是一个一个的 tuple。因此,用 for 循环就可以一个一个拿出来了。
使用Pandas的DataFrame来处理每一行要比使用一个包含元组的元组方便。下面的Python代码片段将所有行转化为DataFrame实例: