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使用新浪微博API发送微博的例子
Apr 10 Python
Python2.x中str与unicode相关问题的解决方法
Mar 30 Python
Python网络编程 Python套接字编程
Sep 13 Python
Python实现的三层BP神经网络算法示例
Feb 07 Python
python+POP3实现批量下载邮件附件
Jun 19 Python
Python  unittest单元测试框架的使用
Sep 08 Python
python数据结构学习之实现线性表的顺序
Sep 28 Python
django框架使用方法详解
Jul 18 Python
python加载自定义词典实例
Dec 06 Python
python如何支持并发方法详解
Jul 25 Python
详解Python3 定义一个跨越多行的字符串的多种方法
Sep 06 Python
用python计算文件的MD5值
Dec 23 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 计算两个时间戳相隔的时间的函数(小时)
2009/12/18 PHP
php实现在线生成条形码示例分享(条形码生成器)
2013/12/30 PHP
Yii2中添加全局函数的方法分析
2017/05/04 PHP
Phpstorm+Xdebug断点调试PHP的方法
2018/05/14 PHP
如何使用Javascript正则表达式来格式化XML内容
2013/07/04 Javascript
jquery自动将form表单封装成json的具体实现
2014/03/17 Javascript
jQuery DOM插入节点操作指南
2015/03/03 Javascript
Javascript中this关键字的一些小知识
2015/03/15 Javascript
谈谈基于iframe、FormData、FileReader三种无刷新上传文件的方法
2015/12/03 Javascript
jquery插件之文字间歇自动向上滚动效果代码
2016/02/25 Javascript
jQuery中设置form表单中action值的实现方法
2016/05/25 Javascript
省市联动效果的简单实现代码(推荐)
2016/06/06 Javascript
jQuery增加、删除及修改select option的方法
2016/08/19 Javascript
BootStrap 超链接变按钮的实现方法
2016/09/25 Javascript
Angular2.0实现modal对话框的方法示例
2018/02/18 Javascript
JS高阶函数原理与用法实例分析
2019/01/15 Javascript
微信小程序实现Swiper轮播图效果
2019/11/22 Javascript
三剑客:offset、client和scroll还傻傻分不清?
2020/12/04 Javascript
python的迭代器与生成器实例详解
2014/07/16 Python
Python中不同进制互相转换(二进制、八进制、十进制和十六进制)
2015/04/05 Python
Python的爬虫框架scrapy用21行代码写一个爬虫
2017/04/24 Python
解决Python 中英文混输格式对齐的问题
2018/07/16 Python
Python使用jsonpath-rw模块处理Json对象操作示例
2018/07/31 Python
用pandas划分数据集实现训练集和测试集
2020/07/20 Python
python编写实现抽奖器
2020/09/10 Python
全神贯注教学反思
2014/02/03 职场文书
环卫工人节活动总结
2014/08/29 职场文书
学生打架检讨书
2014/10/20 职场文书
学校工会工作总结2015
2015/05/19 职场文书
幼儿园新生开学寄语
2015/05/27 职场文书
钢琴师观后感
2015/06/12 职场文书
详解CSS伪元素的妙用单标签之美
2021/05/25 HTML / CSS
MySQL限制查询和数据排序介绍
2022/03/25 MySQL
Win10防火墙白名单怎么设置?Win10添加防火墙白名单方法
2022/04/06 数码科技
python字符串的一些常见实用操作
2022/04/06 Python
ant design vue的form表单取值方法
2022/06/01 Vue.js