Python学习之MySQLdb模块

发布时间:2019-08-06 09:14:09编辑:auto阅读(1491)

    CentOS下安装

    sudo yum install MySQL-python

    可以参考http://www.mikusa.com/python-mysql-docs/index.html  获取更多信息

    MySQL-python 为Python提供MySQL驱动程序,主要包括两个部件,_mysql和MySQLdb


    1. 连接数据库

    In [56]: import MySQLdb
    
    In [57]: db=MySQLdb.connect(host='127.0.0.1',user='xxx',passwd='xxx',db='xxx')

    2.创建游标

    为了能够在多处使用同一个连接,可以创建一个游标对象

    In [60]: cur=db.cursor()

    3.执行MySQL查询操作

    创建数据库表

    In [62]: cur.execute("CREATE TABLE song (id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,title TEXT NOT NULL)")
    In [67]: songs=('Purple Haze','All Along the Watch Tower','Foxy Lady')
    
    In [68]: for song in songs:
       ....:     cur.execute("INSERT INTO song(title) VALUES (%s)",song)
       ....:     print "Auto Increment ID: %s"  %cur.lastrowid
       ....:
    In [5]: cur.execute("SELECT * FROM song WHERE id = %s or id = %s",(1,2))
    In [7]: numrows=cur.execute("SELECT * FROM song")


    4.获取查询结果

    当执行了任何查询操作后,可以用fetchall()或者fetchone()获取

    #/usr/bin/python
    
    import MySQLdb
    
    db=MySQLdb.connect(host='127.0.0.1',user='xxx',passwd='xxx',db='xxx')
    cur=db.cursor()
    cur.execute("SELECT * FROM account")
    rows=cur.fetchall()
    for row in rows:
        for col in row:
            print "%s," %col
        print "\n"
    In [70]: cur.execute("SELECT * FROM song WHERE id=1")
    
    In [71]: print "ID: %s -- Title: %s" %cur.fetchone()


    5.异常处理

    import MySQLdb
    
    db=MySQLdb.connect(host='127.0.0.1',user='jialebi',passwd='jialebi123',db='dream_android_game_center')
    cur=db.cursor()
    try:
       cur.execute("SELECT * FROM account")
       rows=cur.fetchall()
    except MySQLdb.Error,e:
       try:
           print "MySQL Error [%d] : %s" % (e.args[0],e.args[1])
       except IndexError:
           print "MySQL Error: %s" % str(e)
    for row in rows:
        for col in row:
            print "%s," %col
        print "\n"


    6.清理连接

    n [74]: cur.close()
    
    In [75]: db.close()


关键字