Python连接以及操作MySQL数据库详解
2011-08-19 15:47
1391 查看
#!/ 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)
exceptException, 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)
exceptException, 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]) 设置列输出的缓冲值
#-*- encoding: UTF- 8-*-
"""
测试MySQL的连接及操作
"""
import MySQLdb
connstring="host='localhost',port=3306,user='root',passwd='*****',db='python'"
#连接字符串
try:
conn= MySQLdb. connect( connstring)
exceptException, 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)
exceptException, 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]) 设置列输出的缓冲值
相关文章推荐
- Python连接以及操作MySQL数据库详解
- Jmeter测试mysql数据库以及连接数据库操作步骤详解
- python操作mysql数据库的常用方法使用详解
- python连接sqlite(mysql)数据库以及sqlite数据库基础操作
- python操作mysql数据库的常用方法使用详解
- python连接mysql数据库示例(做增删改操作)
- python【第十二篇下】操作MySQL数据库以及ORM之 sqlalchemy
- Python中使用SQLAlchemy连接Mysql数据库2(多表连接操作)
- python数据存储系列教程——python中mysql数据库操作:连接、增删查改、指令执行
- python连接mysql数据库之简单操作
- ErlyWeb的MySQL数据库连接以及操作
- python中的MySQL数据库操作 连接 插入 查询 更新 操作
- python 连接mysql数据库 进行增删改查操作
- Python 简单操作Mysql数据库模块详解
- Python连接MySQL数据库通信实例以及中文乱码的解决办法
- Python 连接MySQL数据库实现CRUD操作(十四)
- Python开发SQLite3数据库相关操作详解【连接,查询,插入,更新,删除,关闭等】
- Python操作MySQL数据库以及IO操作
- python操作mysql数据库步骤详解
- php操作mysql数据库的连接语句以及最简单的增删改查语句