当前访客身份:游客 [ 登录 | 加入 OSCHINA ]

代码分享

当前位置:
代码分享 » Python  » 常用工具方法
Sephiroth

Python MySQLdb模块

Sephiroth 发布于 2010年11月22日 8时, 8评/34669阅
分享到: 
收藏 +0
3
mysql是一个优秀的开源数据库,它现在的应用非常的广泛,因此很有必要简单的介绍一下用python操作mysql数据库的方法。python操作数 据库需要安装一个第三方的模块,在http://mysql-python.sourceforge.net/有下载和文档。
标签: Python

代码片段(1) [全屏查看所有代码]

1. [代码][Python]代码     跳至 [1] [全屏预览]

#-*- encoding: gb2312 -*-
import os, sys, string
import MySQLdb

# 连接数据库 
try:
    conn = MySQLdb.connect(host='localhost',user='root',passwd='xxxx',db='test1')
except Exception, e:
    print e
    sys.exit()

# 获取cursor对象来进行操作

cursor = conn.cursor()
# 创建表
sql = "create table if not exists test1(name varchar(128) primary key, age int(4))"
cursor.execute(sql)
# 插入数据
sql = "insert into test1(name, age) values ('%s', %d)" % ("zhaowei", 23)
try:
    cursor.execute(sql)
except Exception, e:
    print e

sql = "insert into test1(name, age) values ('%s', %d)" % ("张三", 21)
try:
    cursor.execute(sql)
except Exception, e:
    print e
# 插入多条

sql = "insert into test1(name, age) values (%s, %s)" 
val = (("李四", 24), ("王五", 25), ("洪六", 26))
try:
    cursor.executemany(sql, val)
except Exception, e:
    print e

#查询出数据
sql = "select * from test1"
cursor.execute(sql)
alldata = cursor.fetchall()
# 如果有数据返回,就循环输出, alldata是有个二维的列表
if alldata:
    for rec in alldata:
        print rec[0], rec[1]


cursor.close()

conn.close()


开源中国-程序员在线工具:Git代码托管 API文档大全(120+) JS在线编辑演示 二维码 更多»

发表评论 回到顶部 网友评论(8)

  • 1楼:wankaiming 发表于 2011-09-01 18:17 回复此评论

    好像每个插入语句后面少了提交动作------------conn.commit()

  • 2楼:Almond 发表于 2011-09-05 15:19 回复此评论
    谢谢楼上提醒,我说怎么提交不上去
  • 3楼:糖拌咸鱼 发表于 2012-01-12 11:20 回复此评论

    引用来自“网网”的评论

    好像每个插入语句后面少了提交动作------------conn.commit()

    只有支持事务的引擎需要commit,比如innodb引擎,mysql默认的mysiam不需要commit。
  • 4楼:mavarick 发表于 2012-08-25 11:21 回复此评论
    cursor.execute(sql)之后,是不是数据库会把执行的结果先形成一个缓存,然后每次返回size数量的数据? 

    如果要取的数据量很大,是不是需要占很大的内存?

  • 5楼:crossmix 发表于 2012-10-17 19:12 回复此评论
    好像是
  • 6楼:赵云30 发表于 2013-06-07 23:51 回复此评论

    引用来自“糖拌咸鱼”的评论

    引用来自“网网”的评论

    好像每个插入语句后面少了提交动作------------conn.commit()

    只有支持事务的引擎需要commit,比如innodb引擎,mysql默认的mysiam不需要commit。
    貌似是这个道理。可是我下载最新的mysql,默认innodb,从来不用commit语句,select insert 什么的都是立即生效。
  • 7楼:郑炜韬 发表于 2013-07-08 15:02 回复此评论
    不错不错,比java jdbc实现起来方便多了,一条语句就可以实现java的preparedstatment
  • 8楼:hongtenzone 发表于 2013-09-09 17:36 回复此评论
开源从代码分享开始 分享代码
Sephiroth的其它代码 全部(114)...