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实现多行注释的另类方法
Aug 22 Python
Python 正则表达式实现计算器功能
Apr 29 Python
python中类和实例如何绑定属性与方法示例详解
Aug 18 Python
Django中针对基于类的视图添加csrf_exempt实例代码
Feb 11 Python
python实现SOM算法
Feb 23 Python
python dataframe astype 字段类型转换方法
Apr 11 Python
利用Python如何将数据写到CSV文件中
Jun 05 Python
python在html中插入简单的代码并加上时间戳的方法
Oct 16 Python
pycharm debug功能实现跳到循环末尾的方法
Nov 29 Python
Python读取指定日期邮件的实例
Feb 01 Python
将labelme格式数据转化为标准的coco数据集格式方式
Feb 17 Python
python绘制云雨图raincloud plot
Aug 05 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如何编写易读的代码
2007/07/10 PHP
PHP中去除换行解决办法小结(PHP_EOL)
2011/11/27 PHP
php模拟post行为代码总结(POST方式不是绝对安全)
2012/02/22 PHP
smarty表格换行实例
2014/12/15 PHP
php校验公钥是否可用的实例方法
2019/09/17 PHP
PHP单元测试配置与使用方法详解
2019/12/27 PHP
JQuery实现倒计时按钮的实现代码
2012/03/23 Javascript
浅析onsubmit校验表单时利用ajax的return false无效问题
2013/07/10 Javascript
jQuery中验证表单提交方式及序列化表单内容的实现
2014/01/06 Javascript
js+cookies实现悬浮购物车的方法
2015/05/25 Javascript
jquery实现邮箱自动填充提示功能
2015/11/17 Javascript
JS+JSP通过img标签调用实现静态页面访问次数统计的方法
2015/12/14 Javascript
关于JS 预解释的相关理解
2016/06/28 Javascript
js addDqmForPP给标签内属性值加上双引号的函数
2016/12/24 Javascript
老生常谈angularjs中的$state.go
2017/04/24 Javascript
vue实现百度搜索下拉提示功能实例
2017/06/14 Javascript
基于Vue生产环境部署详解
2017/09/15 Javascript
ligerUI---ListBox(列表框可移动的实例)
2017/11/28 Javascript
详解Element 指令clickoutside源码分析
2019/02/15 Javascript
vue开发移动端底部导航条功能
2020/04/08 Javascript
[02:15]你好,这就是DOTA!
2015/08/05 DOTA
Python 时间处理datetime实例
2008/09/06 Python
Python中的进程分支fork和exec详解
2015/04/11 Python
Python解析命令行读取参数之argparse模块
2019/07/26 Python
重写django的model下的objects模型管理器方式
2020/05/15 Python
python mysql自增字段AUTO_INCREMENT值的修改方式
2020/05/18 Python
一文读懂Python 枚举
2020/08/25 Python
韩国休闲女装品牌网站:ANAIS
2016/08/24 全球购物
美国亚马逊旗下男装网站:East Dane(支持中文)
2019/09/25 全球购物
毕业生求职推荐信
2013/11/04 职场文书
会计电算化专业自荐信
2014/03/15 职场文书
教师见习总结范文
2015/06/23 职场文书
行政复议答复书
2015/07/01 职场文书
python第三方网页解析器 lxml 扩展库与 xpath 的使用方法
2021/04/06 Python
vue实现同时设置多个倒计时
2021/05/20 Vue.js
一文彻底理解js原生语法prototype,__proto__和constructor
2021/10/24 Javascript