介绍:
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. xcodebuild 错误:unknown error -1=ffffffffffffffff

    1.security list-keychains 2.security unlock-keychains -p "your password" "your login ...

  2. Mysql AVG() 值 返回NULL而非空结果集

    [1]select 查询返回一行NULL 先来模拟复现一下遇到的问题. (1)源数据表grades,学生成绩表 (2)查询SQL语句 查询‘080601’班的各门课平均成绩 SELECT sClass ...

  3. python 什么是闭包

    1.啰嗦一下 学这个知识点的时候,我本来想先了解下定义, 知道个大概再说, 翻了几篇博客,基本上都是有例子带着进入理解这块.即使读了定义,思想还是不能显出个框架. 想吃快餐,有些行,有些就不可以(这里 ...

  4. textarea如何实现高度自适应?

    今天需要些一个回复评论的页面,设计师给的初始界面就是一个只有一行的框.然后当时就想这个交互该怎么实现比较好,然后想起了新浪微博的做法:点击评论,默认显示一行,当输入的文字超过一行或者输入Enter时, ...

  5. JS 全选、全不选、反选

    function checkReturn(obj) { var objIds = obj.value; //当没有选中某个子复选框时,checkboxall取消选中 if (!$("#sub ...

  6. 8小时入门Git之团队合作学习记录

    Git几个重要的区域 工作流程

  7. Liunx中fstab文件详解

    Liunx中fstab文件详解 /etc/fstab是用来存放文件系统的静态信息的文件.位于/etc/目录下,可以用命令less /etc/fstab 来查看,如果要修改的话,则用命令 vi /etc ...

  8. datagridview 添加数据库数据

    private void btnadd_Click(object sender, EventArgs e) { string str = @"Data Source=(localdb)\MS ...

  9. 第十八节 JS中的正则表达式

    复习字符串操作: search 查找 substring 获取子字符串 charAt 获取某个字符 split 分割字符串,获取数组 var str = 'abcdefghijk'; alert(st ...

  10. 安卓websocket 封装基于Java-websocket

    本文借鉴于https://blog.csdn.net/u013872857/article/details/79190643感谢大神的贡献 借鉴文章所用websocket 第三方是:nv-websoc ...