python操作MySQL数据库具体方法


Posted in Python onOctober 28, 2013
import MySQLdb
try:
    conn=MySQLdb.connect(host='localhost',user='root',passwd='root',db='test',port=3306)
    cur=conn.cursor()
    cur.execute('select * from user')
    cur.close()
    conn.close()
except MySQLdb.Error,e:
     print "Mysql Error %d: %s" % (e.args[0], e.args[1])

请注意修改你的数据库,主机名,用户名,密码。

下面来大致演示一下插入数据,批量插入数据,更新数据的例子吧:

import MySQLdbtry:
    conn=MySQLdb.connect(host='localhost',user='root',passwd='root',port=3306)
    cur=conn.cursor()
    cur.execute('create database if not exists python')
    conn.select_db('python')
    cur.execute('create table test(id int,info varchar(20))')
    value=[1,'hi rollen']
    cur.execute('insert into test values(%s,%s)',value)
    values=[]
    for i in range(20):
        values.append((i,'hi rollen'+str(i)))
    cur.executemany('insert into test values(%s,%s)',values)
    cur.execute('update test set info="I am rollen" where id=3')
    conn.commit()
    cur.close()
    conn.close()
except MySQLdb.Error,e:
     print "Mysql Error %d: %s" % (e.args[0], e.args[1])

请注意一定要有conn.commit()这句来提交事务,要不然不能真正的插入数据。

运行之后我的MySQL数据库的结果就不上图了。

import MySQLdbtry:
    conn=MySQLdb.connect(host='localhost',user='root',passwd='root',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)
    for r in results:
        print r
    print '=='*10
    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])

运行结果就不贴了,太长了。

查询后中文会正确显示,但在数据库中却是乱码的。经过我从网上查找,发现用一个属性有可搞定:

在Python代码

conn = MySQLdb.Connect(host='localhost', user='root', passwd='root', db='python') 中加一个属性:
 改为:
conn = MySQLdb.Connect(host='localhost', user='root', passwd='root', db='python',charset='utf8')
charset是要跟你数据库的编码一样,如果是数据库是gb2312 ,则写charset='gb2312'。

下面贴一下常用的函数:

然后,这个连接对象也提供了对事务操作的支持,标准的方法
commit() 提交
rollback() 回滚

cursor用来执行命令的方法:
callproc(self, procname, args):用来执行存储过程,接收的参数为存储过程名和参数列表,返回值为受影响的行数
execute(self, query, args):执行单条sql语句,接收的参数为sql语句本身和使用的参数列表,返回值为受影响的行数
executemany(self, query, args):执行单挑sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数
nextset(self):移动到下一个结果集

cursor用来接收返回值的方法:
fetchall(self):接收全部的返回结果行.
fetchmany(self, size=None):接收size条返回结果行.如果size的值大于返回的结果行的数量,则会返回cursor.arraysize条数据.
fetchone(self):返回一条结果行.
scroll(self, value, mode='relative'):移动指针到某一行.如果mode='relative',则表示从当前所在行移动value条,如果 mode='absolute',则表示从结果集的第一行移动value条.

Python 相关文章推荐
Python映射拆分操作符用法实例
May 19 Python
利用Python获取赶集网招聘信息前篇
Apr 18 Python
python3实现公众号每日定时发送日报和图片
Feb 24 Python
解决python3 网络请求路径包含中文的问题
May 10 Python
python中reader的next用法
Jul 24 Python
Python如何基于rsa模块实现非对称加密与解密
Jan 03 Python
Python代码一键转Jar包及Java调用Python新姿势
Mar 10 Python
Python多进程编程常用方法解析
Mar 26 Python
pycharm开发一个简单界面和通用mvc模板(操作方法图解)
May 27 Python
Python pip使用超时问题解决方案
Aug 03 Python
Pycharm的Available Packages为空的解决方法
Sep 18 Python
python实现人性化显示金额数字实例详解
Sep 25 Python
Python sys.path详细介绍
Oct 17 #Python
python开发的小球完全弹性碰撞游戏代码
Oct 15 #Python
python中 ? : 三元表达式的使用介绍
Oct 09 #Python
Python 文件和输入输出小结
Oct 09 #Python
Python 错误和异常小结
Oct 09 #Python
Python 命令行非阻塞输入的小例子
Sep 27 #Python
用Python脚本生成Android SALT扰码的方法
Sep 18 #Python
You might like
解析php常用image图像函数集
2013/06/24 PHP
使用php测试硬盘写入速度示例
2014/01/27 PHP
PDO::_construct讲解
2019/01/27 PHP
用jquery和json从后台获得数据集的代码
2011/11/07 Javascript
javascript中[]和{}对象使用介绍
2013/03/20 Javascript
关于JavaScript与HTML的交互事件
2013/04/12 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
2013/10/24 Javascript
jQuery使用hide方法隐藏元素自身用法实例
2015/03/30 Javascript
简介JavaScript中fixed()方法的使用
2015/06/08 Javascript
js实现全国省份城市级联下拉菜单效果代码
2015/09/07 Javascript
jQuery实用技巧必备(上)
2015/11/02 Javascript
js实现的万能flv网页播放器代码
2016/04/30 Javascript
微信小程序 解析网页内容详解及实例
2017/02/22 Javascript
详解VueJs前后端分离跨域问题
2017/05/24 Javascript
Vue.js中的图片引用路径的方式
2017/07/28 Javascript
30分钟快速入门掌握ES6/ES2015的核心内容(下)
2018/04/18 Javascript
关于微信公众号开发无法支付的问题解决
2018/12/28 Javascript
JavaScript实现点击自制菜单效果
2021/02/02 Javascript
12步教你理解Python装饰器
2016/02/25 Python
Python中音频处理库pydub的使用教程
2017/06/07 Python
python自动化生成IOS的图标
2018/11/13 Python
Python 元组拆包示例(Tuple Unpacking)
2019/12/24 Python
python列表删除和多重循环退出原理详解
2020/03/26 Python
Python多分支if语句的使用
2020/09/03 Python
浅析python实现动态规划背包问题
2020/12/31 Python
实例讲解CSS3中的border-radius属性
2015/08/18 HTML / CSS
html5设计原理(推荐收藏)
2014/05/17 HTML / CSS
程序员岗位职责
2013/11/11 职场文书
职专应届生求职信
2013/11/16 职场文书
食品行业求职人的自我评价
2014/01/19 职场文书
集中采购方案
2014/06/10 职场文书
重阳节活动总结
2014/08/27 职场文书
创先争优活动承诺书
2014/08/30 职场文书
党的群众路线教育实践活动学习笔记范文
2014/11/06 职场文书
大学生学年个人总结
2015/02/15 职场文书
Selenium浏览器自动化如何上传文件
2022/04/06 Python