Python连接以及操作MySQL数据库详解

  • #! / usr/ bin/ env python
    #- * - encoding: UTF- 8- * -
    "" "
    测试MySQL的连接及操作
    "
    ""

    import MySQLdb

    connstring= "host='localhost',port=3306,user='root',passwd='*****',db='python'"
    #连接字符串
    try :
        conn= MySQLdb. connect( connstring)
    except Exception , e:
        print e
    break

    mycursor= conn. cursor( )
    #获取游标,用游标操作数据库

    #创建表
    ctable= "" "CREATE TABLE test if not exists(name VARCHAR(30),uid INT(10) primary key)" ""
    mycursor. execute( ctable)


    #插入数据
    insert1= "" "INSERT INTO test(name='aaa',uid=111)" ""
    insert2= "" "INSERT INTO test(name='bbb',uid=222)" ""
    insert3= "" "INSERT INTO test(name='ccc',uid=333)" ""
    inserts= [ ]
    inserts[ 0] . append( insert1)
    inserts[ 1] . append( insert2)
    inserts[ 2] . append( insert3)
    for insert in inserts:
         try :
                mycursor. execute( insert)
         except Exception , e:
                print e

    #删除数据
    #注释掉,下边查询要用到数据,只记录操作
    #mycursor. execute( "" "DELETE FROM test WHERE name='aaa'" "" )
    #多表删除
    #delmany= "" "" DELETE FROM table1, table2, table3 WHERE table1. uid= XXX AND table2. uid= table3. uid"" "
    #mycursor.execute(delmany)


    继续......

     


    #查询表
    slct= "" "SELECT * FROM test"""

    mycursor.execute(slct)

    #查询缓冲池中匹配记录

    records=mycursor.fetchall()

    for record in records:

          print record

     

    #结束数据库操作,释放游标

    mycursor.close()

    #提交操作

    conn.commit()

    #关闭连接

    conn.close()

     

    以上是基本操作,补充几个对象的方法和属性:

    1.connection(连接)对象:

     

         方法名                     作用

        close()                  关闭数据库

        commit()                提交当前事务

        rollback()              取消当前事务

        cursor()           获取当前连接的游标对象

    errorhandler(cxn,cur,errcls,errval)  作为已给游标的句柄

     

     

    2.cursor游标对象属性及方法:

     

      属性方法                      描述

    arraysize        使用fetchmany()方法时一次取出的记录数,默认为1

    connection       创建此游标的连接(可选)

    discription      返回游标的活动状态,包括(7元素):(name,type_code,

                     display_size,internal_size,precision,scale,null_ok)

                     其中name,type_code是必须的。

    lastrowid        返回最后更新行的ID(可选),如果数据库不支持,返回None

    rowcount         最后一次execute()返回或影响的行数

    callproc(func[,args])    调用一个存储过程

    close()           关闭游标

    execute(op[,args])     执行sql语句或数据库命令

    executemany(op,args)   一次执行多条sql语句,执行的条数由arraysize给出

    fetchone()        匹配结果的下一行

    fetchall()        匹配所有剩余结果

    fetchmany(size-cursor,arraysize)  匹配结果的下几行

    __iter__()        创建迭代对象(可选,参考next())

    messages          游标执行好数据库返回的信息列表(元组集合)

    next()            使用迭代对象得到结果的下一行

    nextset()         移动到下一个结果集(如果支持的话)

    rownumber         当前结果集中游标的索引(从0行开始)

    setinput-size(sizes)   设置输入最大值

    setoutput-size(sizes[,col])  设置列输出的缓冲值

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值