介绍:
mysqldb是python操作mysql数据库的一个库.mysql的几乎所有的操作都可以实现。
 
基本使用:

import MySQLdb

conn = MySQLdb.connect(host='localhost',user='weiyz',passwd='',db='test_DB',charset='utf-8')

#创建一个游标对象
cur = conn.cursor() #执行SQL语句,注意这里不返回结果,只是执行而已
cur.excute("use test_table;show tables;") #方法一:fetchall方法返回所有匹配的元组,给出一个大元组(每个元素还是一个元组)
ress = cursor.fetchall() #方法二:fetchone方法返回一条数据,并且使游标右移,若没有返回None
res = cursor.fetchone()
while res:
print res
res = cursor.fetchone() db.close()
说明
  cursor的各个方法:
  close():  游标关闭方法,游标被关闭之后就不能再移动,更不能被fetch
  fetchone/fetchall():  获得一行/所有行结果
  fetchmany([size]):  size指出了我到底要获取多少行的数据,如果能够返回的行数小于要求的 行数的话,就以少的为准。
  nextset():  放弃所有结果集中结果直接跳到下个结果集(如果有的话)。如果没有更多结果集就返回None,否则返回True,接下来的fetch操作将会从新结果集返回数据了。所谓结果集,就是比如连着执行两条SQL语句的话,如果不调用nextset,那么fetch来fetch去总是只能得到第一个语句的结果内容,调用了这个之后就可以看到下一个语句执行结果的内容了。
  rowcount:  这个属性代表了上一次execute*方法得到结果的结果行数,如果是-1则代表了上一次返回结果没有结果集且行数无法确定。
query: 中可以设置变量来动态地生成一些SQL语句,从而使操作更加灵活多变。query中的变量大多数时候用在查询操作里面,因为没有统一的格式规定,设定变量的方法有很多种形式。可以用格式化字符串,数字等等。例:"select Sno,Sname from Student where Sno=%s"
execute(query[,args]):  query是一个SQL串,args是一个序列或者映射,将依次为query中的变量赋值。关于query串中的变量设置下面会细讲。这个方法返回的值是影响的行数(比如查询 SQL就返回查询到了多少行,增删SQL就返回增删了多少行)
  executemany(query[,args]):  这个方法和execute是类似的,只不过它是重复好几次执行execute,args也是一个“相同长度序列的序列”,每一次执行都把一个序列中的项对应到query的变量中去。据说executemany在效率上比execute高出很多, 在批量插入、批量更新时可以考虑使用。注意,如果进行多次查询操作用这个方法的话只能得到最后一个参数约束到SQL中得到的结果集,所以executemany比较适合用于写而不是读操作。
 
关于execute和query的使用

SQL = """
select * from Client where level > %d and gid = %s
"""
cur.execute(SQL,(2,'')) #如果只有一个变量,args不要写类似 ('10001')这样,因为这判是<type 'str'>而不是tuple,应该写('10001',) print cur.fetchone() ##如果同样的SQL,用executemany来查询多个结果集的话
cur.executemany(SQL,(\
(2,''),\
(2,''),\
(1,''),\
)\
)
#如此就相当于依次把2,10001;2,10002和1,10003约束给SQL在执行,但是从查询数据的角度来看,只能得到10003的数据,
#因为executemany是一口气执行完的,fetch只能fetch到最后一个数字。

扩展:

对于支持事务的数据库, 在Python数据库编程中,当游标建立之时,就自动开始了一个隐形的数据库事务:
commit()方法: 游标的所有更新操作
rollback()方法: 回滚当前游标的所有操作。
例:
SQL = "DELETE FROM Client WHERE level < %d"

con = MySQLdb.connect(xxxxx)
cur = con.cursor()
try:
  cur.execute(SQL,(2,))
  con.commit()
except Exception,e:
  con.rollback()
finally:
  cur.close()
  con.close()

MySQLdb使用的更多相关文章

  1. ubuntu 启动MySql和安装python的MySQLdb模块

    ubuntu一般会自己预安装mysql,你只需 /etc/init.d/mysql start|stop|restart|reload|force-reload|status  命令便可以实现mysq ...

  2. Mysql5.5升级到5.7后MySQLdb不能正常使用的问题解决

    ubuntu系统 报错信息1 Type "help", "copyright", "credits" or "license&qu ...

  3. Python3.4下安装pip和MySQLdb

    想用pyhton3.4做数据分析,pip和MySQLdb是必要的,一个便于安装常用模块,一个用来操作数据库.当时安装这两个模块时,由于没有人指导,花了很多的时间才安装好. 安装pip时,按照网上的教程 ...

  4. Create function through MySQLdb

    http://stackoverflow.com/questions/745538/create-function-through-mysqldb How can I define a multi-s ...

  5. python MySQLdb 对mysql基本操作方法

    #!/usr/bin/env python # -*- coding:utf-8 -*- import MySQLdb conn = MySQLdb.connect(host=',db='host') ...

  6. Python的MySQLdb模块安装

    MySQL-python-1.2.1.tar.gz  下载地址:https://pan.baidu.com/s/1kVfH84v 然后解压,打开README(这个其实没有什么鸟用) 里面有安装过程: ...

  7. Python中MySQLdb模块的安装

    安装 MySQLdb是Python语言访问mysql数据库的一个模块,如果你不确定自己的Python环境中是否已经安装了这个模块,可以打开Python shell,输入import MySQLdb,如 ...

  8. [Python] MySQLdb(即 MySQL-python 包)在 OS X 中安装指南

    本文参考:http://www.cnblogs.com/ifantastic/archive/2013/04/13/3017677.html 安装环境:OS X 操作系统,Python 2.7.10 ...

  9. MySQLdb操作mysql的blob值

    一般情况下我们是把图片存储在文件系统中,而只在数据库中存储文件路径的,但是有时候也会有特殊的需求:把图片二进制存入数据库. 今天我们采用的是python+mysql的方式 MYSQL 是支持把图片存入 ...

  10. mac OS X 配置Python+Web.py+MySQLdb环境

    MAC默认支持Python 2.7所以不用安装. 1.安装pip sudo easy_install pip 2.安装Web.py sudo pip install Web.py 3.安装MySQLd ...

随机推荐

  1. 关于动态添加iview admin路由以及刷新侧边栏

    在main.js中的mounted中使用router.addRouters()方法后界面上的路由并未刷新. 在注释掉路由跳转的权限限制之后,发现直接在地址栏输入对应路由能够进去,只是侧边栏没有刷新. ...

  2. Web应用启动时,后台自动启动一个线程(转)

    原文:http://blog.sina.com.cn/s/blog_6810dfc20101ipzq.html Web应用启动时,后台自动启动一个线程 (1)前言 前几天,manager问道一个问题: ...

  3. Redis批量导入数据的方法

    有时候,我们需要给redis库中插入大量的数据,如做性能测试前的准备数据.遇到这种情况时,偶尔可能也会懵逼一下,这里就给大家介绍一个批量导入数据的方法. 先准备一个redis protocol的文件( ...

  4. 比NGINX更快:nginx-1.15.5 vs mongols-1.2.3

    nginx是多进程web服务器的优秀代表. 本文要用mongols-1.2.3实现一个比nginx更快的多进程的web服务器. mongols是C++ 服务器基础设施库, 它的主要特性如下: tcp ...

  5. 宏开发:excel中添加拼接行

    Sub 万途标签()Dim iFor i = 1 To Sheets.Count    If Sheets(i).Name = "数据表" Then        If MsgBo ...

  6. 堆叠式降噪自动编码器(SDA)

    1.1 自动编码器  自动编码器(AutoEncoder,AE)就是一种尽可能复现输入信号的神经网络,其输出向量与输入向量同维,常按照输入向量的某种形式,通过隐层学习一个数据的表示或对原始数据进行有效 ...

  7. JAVA EE 第二周(XML简述以及web请求的过程)

    一. 对于XML,我分别从以下几个方面来简述: 1.定义: XML是一种可扩展的标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言. (可扩展标记语言:可扩展标记语言是一 ...

  8. Java 必须掌握的 20+ 种 Spring 常用注解

    Spring部分 1.声明bean的注解 @Component 组件,没有明确的角色 @Service 在业务逻辑层使用(service层) @Repository 在数据访问层使用(dao层) @C ...

  9. mySQL简单操作(三)

    1.事务 (1)ACID 原子性(不可分割性)automicity 一致性 consistency 隔离性 isolation 持久性 durability (2)事务控制语句 begin/start ...

  10. Thymeleaf的一些操作

    1. js取值 <script th:inline="javascript"> var message = [[${message}]]; console.log(me ...