python操作mysql数据库

   本文操作是以在linux(主要是centos)平台为主,不涉及msyql数据库本身的安装等,主要记录使用python操作mysql数据库的一些语法知识。



1、MySQL-python驱动的安装

驱动库的安装包括yum安装和源码安装

1.1 yum安装

很简单,一条命令,前提是要配置好yum源 

[root@puppetmaster ~]# yum -y install MySQL-python

1.2 源码安装

[root@puppetmaster ~]# cd /usr/local/src/
[root@puppetmaster src]# wget https://pypi.python.org/packages/source/M/MySQL-python/MySQL-python-1.2.5.zip#md5=654f75b302db6ed8dc5a898c625e030c
[root@puppetmaster src]# unzip MySQL-python-1.2.5.zip
[root@puppetmaster src]# cd MySQL-python-1.2.5
[root@puppetmaster MySQL-python-1.2.5]# python setup.py install

以上命令执行完,没有报错,就表示安装成功了



2、操作数据库

>>> import MySQLdb
>>> try:
...     conn=MySQLdb.connect(host='localhost',user='root',passwd='123abc',db='test',port=3306)
...     cur=conn.cursor()
...     cur.execute('select * from users')
...     count = cur.execute('select * from users')      
...     print 'there has %s rows record' % count      
...     result=cur.fetchone()
...     print result
...     results=cur.fetchmany(5)
...     for r in results:
...         print r
...     print '=='*10
...     cur.scroll(0,mode='absolute')
...     results=cur.fetchall()
...     for r in results:
...         print r[1]
...     conn.commit()
...     cur.close()
... except MySQLdb.Error,e:    
...     print "Mysql Error %d: %s" % (e.args[0], e.args[1])
... 
4L
there has 4 rows record
('john', 7000L)
('john', 7001L)
('jane', 7001L)
('bob', 7200L)
====================
7000
7001
7001
7200


连接数据库时,还可以使用charset指定编码:

conn=MySQLdb.connect(host='localhost',user='root',passwd='123abc',db='test',port=3306,charset='utf8')

在选择数据库时,可以使用conn.select_db('test')来更改数据库

conn=MySQLdb.connect(host='localhost',user='root',passwd='123abc',port=3306)
conn.select_db('test')

插入多条语句:

sql="insert into student values(%s,%d)"

cur.executemany(sql,[

    ('john',7000),

    ('jane',7001),

    ('bob',7002),

    ])



还有一些常用的方法:

连接对象conn也提供了对事务操作的支持,标准的方法:

commit() 提交

rollback() 回滚


cursor用来执行命令的方法:

callproc(self, procname, args):用来执行存储过程,接收的参数为存储过程名和参数列表,返回值为受影响的行数

execute(self, query, args):执行单条sql语句,接收的参数为sql语句本身和使用的参数列表,返回值为受影响的行数

executemany(self, query, args):执行单挑sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数

nextset(self):移动到下一个结果集


cursor用来接收返回值的方法:

fetchall(self):接收全部的返回结果行.

fetchmany(self, size=None):接收size条返回结果行.如果size的值大于返回的结果行的数量,则会返回cursor.arraysize条数据.

fetchone(self):返回一条结果行.

scroll(self, value, mode='relative'):移动指针到某一行.如果mode='relative',则表示从当前所在行移动value条,如果 mode='absolute',则表示从结果集的第一行移动value条


本文出自 “leboit” 博客,谢绝转载!

你可能感兴趣的:(mysql,python)