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 相关文章推荐
Windows下PyMongo下载及安装教程
Apr 27 Python
Python正则表达式常用函数总结
Jun 24 Python
Python堆排序原理与实现方法详解
May 11 Python
Python使用itertools模块实现排列组合功能示例
Jul 02 Python
Python3解释器知识点总结
Feb 19 Python
Python3实现的回文数判断及罗马数字转整数算法示例
Mar 27 Python
python操作openpyxl导出Excel 设置单元格格式及合并处理代码实例
Aug 27 Python
python实现简单成绩录入系统
Sep 19 Python
python实现飞机大战小游戏
Nov 08 Python
python使用pip安装SciPy、SymPy、matplotlib教程
Nov 20 Python
python绘制动态曲线教程
Feb 24 Python
Python Pygame实战在打砖块游戏的实现
Mar 17 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 eval函数用法 PHP中eval()函数小技巧
2012/10/31 PHP
ThinkPHP中redirect用法分析
2014/12/05 PHP
Laravel框架中实现使用阿里云ACE缓存服务
2015/02/10 PHP
PHP实现微信退款的方法示例
2019/03/26 PHP
jQuery插件 tabBox实现代码
2010/02/09 Javascript
jQuery javaScript捕获回车事件(示例代码)
2013/11/07 Javascript
一个简单的jquery进度条示例
2014/04/28 Javascript
jQuery不兼容input的change事件问题解决过程
2014/12/05 Javascript
JavaScrip调试技巧之断点调试
2015/10/22 Javascript
浅谈JavaScript的函数及作用域
2016/12/30 Javascript
BootstrapTable请求数据时设置超时(timeout)的方法
2017/01/22 Javascript
Bootstrap table简单使用总结
2017/02/15 Javascript
JS实现标签滚动切换效果
2017/12/25 Javascript
vue自定义全局共用函数详解
2018/09/18 Javascript
JS实现计算小于非负数n的素数的数量算法示例
2019/02/26 Javascript
通过vue写一个瀑布流插件代码实例
2019/09/07 Javascript
详解如何在vue+element-ui的项目中封装dialog组件
2020/12/11 Vue.js
[04:31]2016国际邀请赛中国区预选赛妖精采访
2016/06/27 DOTA
详谈pandas中agg函数和apply函数的区别
2018/04/20 Python
Python2.7环境Flask框架安装简明教程【已测试】
2018/07/13 Python
Anconda环境下Vscode安装Python的方法详解
2020/03/29 Python
Ubuntu18.04安装 PyCharm并使用 Anaconda 管理的Python环境
2020/04/08 Python
python安装后的目录在哪里
2020/06/21 Python
HTML5中的网络存储实现方式
2020/04/28 HTML / CSS
澳大利亚领先的运动鞋商店:Hype DC
2018/03/31 全球购物
Stührling手表官方网站:男女高品质时尚手表的领先零售商
2021/01/07 全球购物
淘宝网店营销策划书
2014/01/11 职场文书
给医务人员表扬信
2014/01/12 职场文书
小学数学教学反思
2014/02/02 职场文书
《美丽的小路》教学反思
2014/02/26 职场文书
竞选体育委员演讲稿
2014/04/26 职场文书
心理咨询承诺书
2014/05/20 职场文书
德育标兵事迹材料
2014/08/24 职场文书
典型事迹材料范文
2014/12/29 职场文书
干部培训简讯
2015/07/20 职场文书
Python Django 后台管理之后台模型属性详解
2021/04/25 Python