python操作MySQL数据库

感觉学过的东西,总结一下比较好,不然随着时间的流逝又都忘却了。当以后的时间里突然用到了,想起来这个东西曾经学过,然后还有总结可以看,这确实是有效率又令人舒服的事情。
最近学了一下python脚本对数据库的操作,记录的同时,也分享出来。

# -*-encoding: utf-8 -*-
import MySQLdb #首先是导入数据库的包

try:
    #连接到数据库,获得连接数据库对象conn
    conn = MySQLdb.connect(host="localhost",user="root",passwd="911223",port=3306)
    #获取当前连接的游标对象,以后基本用游标对象cur来操作数据库
    cur = conn.cursor() 
    #创建数据库python
    cur.execute('create database if not exists python')
    #选择刚刚创建的数据库python,如果本来就有的数据库,可以在第一行创建conn对象时就选择;由于新创建的,所以用conn对象再选择一次。
    conn.select_db('python')
    #创建数据表test
    cur.execute('create table test(id int,info varchar(20))')
    #定义个键值对value
    value=[1,'hi rollen']
    #插入到数据表test,注意一下语法,values(%s,%s)',value 
    cur.execute('insert into test values(%s,%s)',value)

    values=[]
    for i in range(20):
        values.append((i,'hi rollen'+str(i)))
    #一次执行多条语句用executemany
    cur.executemany('insert into test values(%s,%s)',values)

    cur.execute('update test set info="I am rollen" where id=3')
    #提交当前事务:必须sql写完后要提交commit(),尤其是insert, update, delete时,否则数据库没有变化!!! 而像select这种普通的查询,不涉及修改数据库的,是否commit()没有关系
    conn.commit()
    #关闭游标        
    cur.close() 
    #关闭数据库 
    conn.close() 
except MySQLdb.Error,e:#捕获异常
     print "Mysql Error %d: %s" % (e.args[0], e.args[1])


----------
## 下边代码为验证一下数据库操作的结果 ##

try:
    conn=MySQLdb.connect(host='localhost',user='root',passwd='911223',port=3306)
    cur=conn.cursor()

    conn.select_db('python')
    #查看共有多少条记录
    count=cur.execute('select * from test')
    print 'there has %s rows record' % count

    result=cur.fetchone()#获取一条记录,以一个元组返回
    print result
    print 'ID: %s info %s' % result

    results=cur.fetchmany(5)#获取后5条记录,由于之前执行了getchone(),所以游标已经指到第二条记录,下面也就从第二条记录开始返回
    for r in results:
        print r

    print '=='*10
    #重置游标位置,0,为偏移量,mode = relative(默认)
    cur.scroll(0,mode='absolute')
    #将所有(剩余)的行作为序列的序列
    results=cur.fetchall() 
    for r in results:
        print r[1]
    conn.commit()
    cur.close()
    conn.close()

except MySQLdb.Error,e:
     print "Mysql Error %d: %s" % (e.args[0], e.args[1])

运行结果:
PS D:\python\WorkSpace> python mysql.py
mysql.py:9: Warning: Can’t create database ‘python’; database exists
cur.execute(‘create database if not exists python’)
Mysql Error 1050: Table ‘test’ already exists

there has 21 rows record
(1L, ‘hi rollen’)
ID: 1 info hi rollen
(0L, ‘hi rollen0’)
(1L, ‘hi rollen1’)
(2L, ‘hi rollen2’)
(3L, ‘I am rollen’)
(4L, ‘hi rollen4’)
================
hi rollen
hi rollen0
hi rollen1
hi rollen2
I am rollen
hi rollen4
hi rollen5
hi rollen6
hi rollen7
hi rollen8
hi rollen9
hi rollen10
hi rollen11
hi rollen12
hi rollen13
hi rollen14
hi rollen15
hi rollen16
hi rollen17
hi rollen18
hi rollen19

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值