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中的变量、引用、拷贝和作用域的问题
Apr 07 Python
python文件操作相关知识点总结整理
Feb 22 Python
Python实现简单字典树的方法
Apr 29 Python
Python设置默认编码为utf8的方法
Jul 01 Python
Python中模块与包有相同名字的处理方法
May 05 Python
Python编程argparse入门浅析
Feb 07 Python
利用python如何处理百万条数据(适用java新手)
Jun 06 Python
django+mysql的使用示例
Nov 23 Python
python使用pandas处理大数据节省内存技巧(推荐)
May 05 Python
使用Python的datetime库处理时间(RPA流程)
Nov 24 Python
利用python实现逐步回归
Feb 24 Python
matplotlib.pyplot.matshow 矩阵可视化实例
Jun 16 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 session会话的安全性分析
2011/09/08 PHP
基于php上传图片重命名的6种解决方法的详细介绍
2013/04/28 PHP
php获取URL中带#号等特殊符号参数的解决方法
2014/09/02 PHP
Adnroid 微信内置浏览器清除缓存
2016/07/11 PHP
PHP实现财务审核通过后返现金额到客户的功能
2019/07/04 PHP
laravel 验证错误信息到 blade模板的方法
2019/09/29 PHP
CSS中简写属性要注意TRouBLe的顺序问题(避免踩坑)
2021/03/09 HTML / CSS
jQuery实现当按下回车键时绑定点击事件
2014/01/28 Javascript
利用jquery.qrcode在页面上生成二维码且支持中文
2014/02/12 Javascript
js获取指定日期周数以及星期几的小例子
2014/06/27 Javascript
JavaScript字符串常用类使用方法汇总
2015/04/14 Javascript
javascript实现点击商品列表checkbox实时统计金额的方法
2015/05/15 Javascript
通过js获取上传的图片信息(临时保存路径,名称,大小)然后通过ajax传递给后端的方法
2015/10/01 Javascript
浅析JS动态创建元素【两种方法】
2016/04/20 Javascript
JavaScript的Backbone.js框架环境搭建及Hellow world示例
2016/05/07 Javascript
Node.js返回JSONP详解
2016/05/18 Javascript
jquery实现焦点轮播效果
2017/02/23 Javascript
nodejs发送http请求时遇到404长时间未响应的解决方法
2017/12/10 NodeJs
Vue自定义全局Toast和Loading的实例详解
2019/04/18 Javascript
layui table 表格上添加日期控件的两种方法
2019/09/28 Javascript
vue在App.vue文件中监听路由变化刷新页面操作
2020/08/14 Javascript
Python内置函数——__import__ 的使用方法
2017/11/24 Python
Python实现PS滤镜特效之扇形变换效果示例
2018/01/26 Python
python按行读取文件,去掉每行的换行符\n的实例
2018/04/19 Python
python实现坦克大战
2020/04/24 Python
tensorflow dataset.shuffle、dataset.batch、dataset.repeat顺序区别详解
2020/06/03 Python
Python实现一个简单的毕业生信息管理系统的示例代码
2020/06/08 Python
python3.7 openpyxl 在excel单元格中写入数据实例
2020/09/01 Python
通过代码实例了解Python3编程技巧
2020/10/13 Python
Python ellipsis 的用法详解
2020/11/20 Python
美国家居用品和厨具购物网站:DealsDot
2019/10/07 全球购物
技校教师求职简历的自我评价
2013/10/20 职场文书
学校火灾防控方案
2014/06/09 职场文书
机电一体化毕业生自荐信
2014/06/19 职场文书
爱国主义教育演讲稿
2014/08/26 职场文书
银行中层干部培训心得体会
2016/01/11 职场文书