`
changyong
  • 浏览: 4347 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

Python MySQLdb 学习总结 转

阅读更多
http://www.cnblogs.com/coser/archive/2012/01/12/2320741.html
    任何应用都离不开数据,所以在学习python的时候,当然也要学习一个如何用python操作数据库了。MySQLdb就是python对mysql数据库操作的模块。官方Introduction : MySQLdb is an thread-compatible interface to the popular MySQL database server that provides the Python database API. 它其实相当于翻译了对应C的接口。

   使用这种数据库接口大多是就是执行连接数据库->执行query->提取数据->关闭连接 这几个步骤。MySQLdb提供比较关键的对象,分别是Connection、Cursor、Result。具体使用步骤很简单先不写了,先写一些个人认为比较重要、值得注意的地方。

1、虽然在MySQLdb.Connect(host ,user , passw , db)函数中,我们经常使用的只是这几个参数,但是其实里面还有很多比如字符集、线程安全、ssl等也都是很重要的参数,使用时要身份注意。

2、当使用Connection.query()函数进行query后,connection 对象可以返回两种result,分别是store_result和use_result,store_result 将结果集存回client端,而use_result则是结果集保存在server端,并且维护了一个连接,会占用server资源。此时,不可以进行任何其他的查询。建议使用store_result,除非返回结果集(result set)过大或是无法使用limit的情形。

3、提取(fetch)数据的返回形式大多有三种情形。 as a tuple(how=0) ;as dictionaries, key=column or table.column if duplicated(how=1);as dictionaries, key=table.column (how=2)

4、每次fetch,在result内部都会产生数据位置的移动,也就是说假如有10行数据,执行result.fetch_row(3,0),会得到前三行,再执行result.fetch_row(3,0),则会得到中间的三行,所以说fetch会导致position的移动。另外值得注意的是,如果使用use_result,也就是数据存储在server时,在fetch所有的条目之前,不能进行任何的query操作。

5、mysql本身不支持游标(Cursor),但是MySQLdb对Cursor进行了仿真。重要的执行query方法有execute 和 executemany 。execute方法,执行单条sql语句,调用executemany方法很好用,数据库性能瓶颈很大一部分就在于网络IO和磁盘IO将多个insert放在一起,只执行一次IO,可以有效的提升数据库性能。游标cursor具有fetchone、fetchmany、fetchall三个方法提取数据,每个方法都会导致游标游动,所以必须关注游标的位置。游标的scroll(value, mode)方法可以使得游标进行卷动,mode参数指定相对当前位置(relative)还是以绝对位置(absolute)进行移动。

6、MySQLdb提供了很多函数方法,在官方指南里没有完全罗列,使用者可以用help去看看,里面提供了很多方便的东西。

7、对于mysql来说,如果使用支持事务的存储引擎,那么每次操作后,commit是必须的,否则不会真正写入数据库,对应rollback可以进行相应的回滚,但是commit后是无法再rollback的。commit() 可以在执行很多sql指令后再一次调用,这样可以适当提升性能。

8、executemany处理过多的命令也不见得一定好,因为数据一起传入到server端,可能会造成server端的buffer溢出,而一次数据量过大,也有可能产生一些意想不到的麻烦。合理,分批次executemany是个不错的办法。

  最后,我自己写了个pyMysql模块,主要是对MySQLdb提供的常用方法进行了简单的再次封装,也借此机会好好学习下MySQLdb,以及练习python的编码。该程序使用的数据库表,采用myisam引擎,所以没加上commit(),一般最好还是要加上的。
分享到:
评论

相关推荐

    课题-Python-MySQLdb-学习总结.docx

    ### Python MySQLdb 学习总结 #### 一、MySQLdb简介 MySQLdb 是 Python 社区为 MySQL 数据库提供的一种接口实现,它遵循 Python 数据库 API 规范 V2.0,提供了线程兼容的方式与 MySQL 服务器进行交互。通过 MySQLdb...

    课题-Python-MySQLdb-学习总结.doc.docx

    Python中的MySQLdb模块是用于与MySQL数据库交互的重要工具,它实现了Python数据库API规范,使得Python程序员可以方便地在Python程序中执行SQL语句并处理数据库操作。以下是对MySQLdb模块的一些关键知识点的详细说明...

    python操作MySQL的MySQLdb模块

    总结,Python的MySQLdb模块是Python与MySQL数据库交互的重要工具,它遵循Python的DB-API标准,提供了一套完整的数据库操作接口。在Windows环境下,正确安装和配置MySQLdb需要考虑更多的系统兼容性问题,但一旦设置好...

    python下MySQLdb使用.docx

    ### Python 下 MySQLdb 使用详解 #### 一、MySQLdb 概述 `MySQLdb` 是一个用于 Python 的 MySQL 数据库接口库,它提供了一个...通过以上内容的学习,读者应能更好地利用 `MySQLdb` 实现数据库管理和数据处理等功能。

    浅析Python中MySQLdb的事务处理功能

    总结来说,Python中的MySQLdb库通过`commit()`和`rollback()`方法提供了强大的事务处理能力。理解并正确使用这些功能,可以帮助开发者编写出更加健壮的数据库操作代码,同时确保数据的完整性和一致性。在实际开发中...

    linux环境下python中MySQLdb模块的安装方法

    总结来说,安装MySQLdb模块需要经过下载、解压、编译和安装等步骤,过程中可能会遇到`mysql_config`、`python-dev`和`setuptools`等相关依赖问题,逐一解决后即可顺利完成安装。在遇到问题时,Google和其他开发者...

    Python个人学习知识点总结

    8. **数据库编程**:在`数据库编程.py`中,你可能接触到了Python如何与数据库交互,如使用SQLite、MySQLdb或pymysql库连接SQL数据库,执行查询和更新操作。 9. **ORM框架SQLAlchemy**:ORM(Object-Relational ...

    python考试题目.docx

    本文旨在总结 Python 考试题目的知识点,涵盖了 Python 语法、数据类型、函数、面向对象、异常处理、随机数、正则表达式、数据库交互等多方面的知识点。 一、选择题 1. 执行语句 `world=”world”` 和 `print ...

    Python访问MySQL数据库.pdf

    1. 简单易学:Python的设计哲学强调代码的可读性和简洁的语法,如它常被比作是接近英语的伪代码,这使得Python更容易学习和理解。 2. 免费开源:Python是自由/开放源码软件之一,即FLOSS,允许用户自由地复制、阅读...

    80个Python经典资料(教程+源码+工具)汇总——下载目录

    ### Python经典资料知识点总结 #### 一、Python学习资料概览 在提供的“80个Python经典资料(教程+源码+工具)汇总——下载目录”中,包含了丰富的Python学习资源,适合不同阶段的学习者使用。这些资源按照类型大致...

    Python 教程操作 MySQL 数据库介绍.docx

    通过本文,我们了解了Python DB-API的基本概念,学习了如何使用MySQLdb模块连接MySQL数据库以及执行基本的数据库操作。掌握了这些基础知识后,可以进一步探索更高级的功能,如事务处理、批处理查询等,从而更好地...

    python简易人事管理系统.rar

    通过Python的MySQLdb或者pymysql库,可以方便地与MYSQL数据库进行交互,进行数据的增删改查操作。 五、登录功能实现 登录功能是系统的第一道关卡,通常需要验证用户名和密码。这里可以通过Python的requests库发送...

    Python访问Mysql数据库

    - **`pymysql`**: 这是一个纯Python实现的MySQL驱动程序,与MySQLdb兼容。它适用于Python 2和Python 3。 **2.3 使用示例** 以下是一个简单的示例,展示了如何使用`mysql-connector-python`连接MySQL数据库并执行...

    用yum安装MySQLdb模块的步骤方法

    总结一下,通过yum安装MySQLdb模块的过程包括两部分:安装mysql-devel包以提供编译环境,然后使用yum安装MySQLdb-python模块。在Python中成功导入MySQLdb模块后,就可以开始愉快地使用Python进行MySQL数据库的管理与...

    Python-ysqlclientPython的MySQL数据库连接器支持Python3

    在Python的生态中,ysqlclient作为一个可靠的替代方案,替代了早期的MySQLdb库,因为MySQLdb主要支持Python 2。 ysqlclient库的核心功能包括: 1. **连接建立**:通过`mysql.connect()`函数创建到MySQL服务器的...

    python中级教程:开发总结-Crifan.pdf

    12. **数据库操作**:Python提供了如SQLite、MySQLdb、psycopg2等库,支持对各种数据库的访问和操作,了解数据库连接、查询和事务处理是数据库编程的基础。 13. **其他内容**:教程可能还涵盖异常处理、并发编程、...

    PythonDjango学习笔记软件下载及安装(一)参照.pdf

    总结来说,安装 Python Django 环境涉及下载 Python、Django、Apache 服务器以及相应的数据库适配器,安装过程通常包括双击执行安装文件、解压缩并移动文件、配置环境变量以及执行安装脚本。确保每个组件正确配置,...

    Python for DBS

    例如,MySQLdb是用于MySQL数据库的一个Python模块,它允许Python脚本执行SQL语句并与MySQL数据库交互。通过这样的模块,Python开发者可以编写数据库相关的应用程序,执行查询、更新数据、事务处理等操作。 在项目...

    Python网络爬虫技术 完整教案.docx

    通过对Python爬虫技术的学习,不仅可以帮助我们更好地理解和利用互联网资源,还能为后续的数据分析、挖掘等工作奠定坚实的基础。同时,需要注意遵守相关的法律法规和技术规范,合理合法地使用爬虫技术,为社会创造更...

Global site tag (gtag.js) - Google Analytics