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 26 Python
Flask和Django框架中自定义模型类的表名、父类相关问题分析
Jul 19 Python
Python正则表达式实现简易计算器功能示例
May 07 Python
对Python3之方法的覆盖与super函数详解
Jun 26 Python
PyQtGraph在pyqt中的应用及安装过程
Aug 04 Python
Python Django框架模板渲染功能示例
Nov 08 Python
关于Pytorch MaxUnpool2d中size操作方式
Jan 03 Python
Python模块future用法原理详解
Jan 20 Python
python使用nibabel和sitk读取保存nii.gz文件实例
Jul 01 Python
python中的错误如何查看
Jul 08 Python
Python实现七个基本算法的实例代码
Oct 08 Python
python实现Nao机器人的单目测距
Sep 04 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
Thinkphp5框架中引入Markdown编辑器操作示例
2020/06/03 PHP
解决使用attachEvent函数时,this指向被绑定的元素的问题的方法
2007/08/13 Javascript
jQuery基础知识小结
2014/12/22 Javascript
PHP守护进程实例
2015/03/06 Javascript
介绍JavaScript的一个微型模版
2015/06/24 Javascript
推荐10 个很棒的 jQuery 特效代码
2015/10/04 Javascript
jQuery实现ctrl+enter(回车)提交表单
2015/10/19 Javascript
js省市联动效果完整实例代码
2015/12/09 Javascript
图解js图片轮播效果
2015/12/20 Javascript
JS构造函数与原型prototype的区别介绍
2016/07/04 Javascript
jquery 删除节点 添加节点 找兄弟节点的简单实现
2016/12/07 Javascript
微信小程序 实现列表项滑动显示删除按钮的功能
2017/04/13 Javascript
详解vue表单验证组件 v-verify-plugin
2017/04/19 Javascript
webstrom Debug 调试vue项目的方法步骤
2018/07/17 Javascript
原生JS实现随机点名项目的实例代码
2019/04/30 Javascript
Node.js系列之发起get/post请求(2)
2019/08/30 Javascript
Node.js web 应用如何封装到Docker容器中
2020/09/01 Javascript
Python实现配置文件备份的方法
2015/07/30 Python
Python实现统计文本文件字数的方法
2017/05/05 Python
Python编写合并字典并实现敏感目录的小脚本
2019/02/26 Python
Python选择网卡发包及接收数据包
2019/04/04 Python
python变量的存储原理详解
2019/07/10 Python
Python 文件操作之读取文件(read),文件指针与写入文件(write),文件打开方式示例
2019/09/29 Python
Python开发之pip安装及使用方法详解
2020/02/21 Python
python访问hdfs的操作
2020/06/06 Python
解决tensorflow模型压缩的问题_踩坑无数,总算搞定
2021/03/02 Python
美国户外运动商店:Sun & Ski
2018/08/23 全球购物
会计学财务管理专业个人的自我评价
2013/10/19 职场文书
网络工程师专家职业发展路线
2014/02/14 职场文书
爱国演讲稿500字
2014/05/04 职场文书
节能宣传周活动总结
2014/05/08 职场文书
小学生志愿者活动方案
2014/08/23 职场文书
学生会干部自我鉴定2014
2014/09/18 职场文书
全国爱眼日活动总结
2015/02/27 职场文书
nginx实现发布静态资源的方法
2021/03/31 Servers
sql通过日期判断年龄函数的示例代码
2021/07/16 SQL Server