Chinaunix首页 | 论坛 | 博客
  • 博客访问: 298378
  • 博文数量: 34
  • 博客积分: 2375
  • 博客等级: 大尉
  • 技术积分: 354
  • 用 户 组: 普通用户
  • 注册时间: 2006-01-09 05:49
文章存档

2013年(1)

2012年(3)

2011年(10)

2010年(20)

我的朋友

分类: Python/Ruby

2010-05-12 10:32:26

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

import MySQLdb

import sys

#连接测试
try:
    conn=MySQLdb.connect(

                         host='localhost'

                         port=3306

                         user='username'

                         passwd='password'

                         db='database'

                         )
except Exception,e:
    print e
    sys.exit()

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])  设置列输出的缓冲值

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++

         
 

阅读(1605) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:wxPython控件学习之StaticText

给主人留下些什么吧!~~