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进行mp3格式判断
Dec 23 Python
python reduce 函数使用详解
Dec 05 Python
Python IDLE清空窗口的实例
Jun 25 Python
python实现汽车管理系统
Nov 30 Python
python批量创建指定名称的文件夹
Mar 21 Python
解决django后台样式丢失,css资源加载失败的问题
Jun 11 Python
pytorch自定义初始化权重的方法
Aug 17 Python
python getpass实现密文实例详解
Sep 24 Python
Python爬虫获取豆瓣电影并写入excel
Jul 31 Python
如何在 Matplotlib 中更改绘图背景的实现
Nov 26 Python
tensorflow+k-means聚类简单实现猫狗图像分类的方法
Apr 28 Python
Python几种酷炫的进度条的方式
Apr 11 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与jquery设置和读取cookies
2013/08/08 PHP
PHP中is_dir()函数使用指南
2015/05/08 PHP
php简单smarty入门程序实例
2015/06/11 PHP
禁止F5等快捷键的JS代码
2007/03/06 Javascript
jquery无缝向上滚动实现代码
2013/03/29 Javascript
js 固定悬浮效果实现思路代码
2013/08/02 Javascript
js中继承的几种用法总结(apply,call,prototype)
2013/12/26 Javascript
express的中间件cookieParser详解
2014/12/04 Javascript
Node.js中的缓冲与流模块详细介绍
2015/02/11 Javascript
JS实现文字链接感应鼠标淡入淡出改变颜色的方法
2015/02/26 Javascript
JS扩展方法实例分析
2015/04/15 Javascript
原生js实现移动开发轮播图、相册滑动特效
2015/04/17 Javascript
javascript实现倒计时(精确到秒)
2015/06/26 Javascript
AngularJs 国际化(I18n/L10n)详解
2016/09/01 Javascript
JavaScript排序算法动画演示效果的实现方法
2016/10/18 Javascript
js模仿微信朋友圈计算时间显示几天/几小时/几分钟/几秒之前
2017/04/27 Javascript
jQuery滑动到底部加载下一页数据的实例代码
2017/05/22 jQuery
AngularJS基于http请求实现下载php生成的excel文件功能示例
2018/01/23 Javascript
Node.js+Vue脚手架环境搭建的方法步骤
2020/03/08 Javascript
Windows上配置Emacs来开发Python及用Python扩展Emacs
2015/11/20 Python
Python正则表达式教程之二:捕获篇
2017/03/02 Python
浅谈Python里面小数点精度的控制
2018/07/16 Python
django session完成状态保持的方法
2018/11/27 Python
pytorch 实现查看网络中的参数
2020/01/06 Python
matplotlib基础绘图命令之errorbar的使用
2020/08/13 Python
python RSA加密的示例
2020/12/09 Python
python实现按日期归档文件
2021/01/30 Python
利用Storage Event实现页面间通信的示例代码
2018/07/26 HTML / CSS
HTML5 Blob对象的具体使用
2020/05/22 HTML / CSS
Probikekit日本:自行车套件,跑步和铁人三项装备
2017/04/03 全球购物
node中使用shell脚本的方法步骤
2021/03/23 Javascript
英文请假条
2014/04/11 职场文书
大学学习计划书范文
2014/05/02 职场文书
语文教研活动总结
2014/07/02 职场文书
信息技术国培研修日志
2015/11/13 职场文书
vue ant design 封装弹窗表单的使用
2022/06/01 Vue.js