Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2069431
  • 博文数量: 103
  • 博客积分: 206
  • 博客等级: 入伍新兵
  • 技术积分: 1819
  • 用 户 组: 普通用户
  • 注册时间: 2012-09-12 10:24
个人简介

效字当先,以质为本。

文章分类
文章存档

2019年(2)

2018年(4)

2017年(7)

2016年(3)

2015年(14)

2014年(33)

2013年(31)

2012年(9)

分类: Python/Ruby

2013-08-22 14:25:29

平时的主要编程语言是Java,开发时也主要用Mysql,经常为了测试,调试的目的需要操作数据库,比如备份,插入测试数据,修改测试数据, 有些时候不能简单的用SQL就能完成任务,或都很好的完成任务,用Java写又有点太麻烦了,就想到了Python。Python语法简洁,不用编译,可 以经较好的完成任务。今天看了下Python对Mysql的操作,做一下记录。

首先,安装需要的环境,Mysql和Python就不说了,必备的东西。
主要是安装的MySQLdb,可以去sf.net下载,具体地址是
如果用Ubuntu,直接

sudo apt-getinstall python-mysqldb

安装完成之后可以在Python解释器中测试一下
输入
Python代码

importMySQLdb#注意大小写!!

如果不报错,就证明安装成功了,可能继续了
MySQLdb 在Python中也就相当于JAVA中的MySQL的JDBC Driver,Python也有类似的数据接口规范Python DB API,MySQLdb就是Mysql的实现。操作也比较简单和其它平台或语言操作数据库一样,就是建立和数据库系统的连接,然后给数据库输入SQL,再 从数据库获取结果。
先写一个最简单的,创建一个数据库:
Python代码
  1. #!/usr/bin/env python

  2. #coding=utf-8

  3. #MySQLdb 示例

  4. ##################################

  5. importMySQLdb

  6.  

  7. #建立和数据库系统的连接

  8. conn =MySQLdb.connect(host='localhost',user='root',passwd='longforfreedom')

  9.  

  10. #获取操作游标

  11. cursor =conn.cursor()

  12. #执行SQL,创建一个数据库.

  13. cursor.execute("""create database python """)

  14.  

  15. #关闭连接,释放资源

  16. cursor.close();

创建数据库,创建表,插入数据,插入多条数据

Python代码
  1. #!/usr/bin/env python

  2. #coding=utf-8

  3. #MySQLdb 示例

  4. #

  5. ##################################

  6. importMySQLdb

  7.  

  8. #建立和数据库系统的连接

  9. conn =MySQLdb.connect(host='localhost',user='root',passwd='longforfreedom')

  10.  

  11. #获取操作游标

  12. cursor =conn.cursor()

  13. #执行SQL,创建一个数据库.

  14. cursor.execute("""create database if not exists python""")

  15.  

  16. #选择数据库

  17. conn.select_db('python');

  18. #执行SQL,创建一个数据表.

  19. cursor.execute("""create table test(id int, info varchar(100)) """)

  20. value =[1,"inserted ?"];

  21.  

  22. #插入一条记录

  23. cursor.execute("insert into test values(%s,%s)",value);

  24. values=[]

  25.  

  26. #生成插入参数值

  27. fori inrange(20):

  28.     values.append((i,'Hello mysqldb, I am recoder '+str(i)))

  29. #插入多条记录

  30.  

  31. cursor.executemany("""insert into test values(%s,%s) """,values);

  32.  

  33. #关闭连接,释放资源

  34. cursor.close();

查询和插入的流程差不多,只是多了一个得到查询结果的步骤
Python代码

  1. #!/usr/bin/env python

  2. #coding=utf-8

  3. #

  4. # MySQLdb 查询

  5. #

  6. #######################################

  7.  

  8. importMySQLdb

  9.  

  10. conn =MySQLdb.connect(host='localhost',user='root',passwd='longforfreedom',db='python')

  11.  

  12. cursor =conn.cursor()

  13.  

  14. count =cursor.execute('select * from test')

  15.  

  16. print'总共有 %s 条记录',count

  17.  

  18. #获取一条记录,每条记录做为一个元组返回

  19. print"只获取一条记录:"

  20. result =cursor.fetchone();

  21. printresult

  22. #print 'ID: %s   info: %s' % (result[0],result[1])

  23. print'ID: %s   info: %s'%result

  24.  

  25. #获取5条记录,注意由于之前执行有了fetchone(),所以游标已经指到第二条记录了,也就是从第二条开始的所有记录

  26.  

  27. print"只获取5条记录:"

  28. results =cursor.fetchmany(5)

  29. forr inresults:

  30. printr

  31.  

  32. print"获取所有结果:"

  33. #重置游标位置,0,为偏移量,mode=absolute | relative,默认为relative,

  34. cursor.scroll(0,mode='absolute')

  35. #获取所有结果

  36. results =cursor.fetchall()

  37. forr inresults:

  38. printr

  39. conn.close()

阅读(1792) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~