python 通过DB-API规范了它所支持的不同的数据库,使得不同的数据库可以使用统一的接口来访问和操作。

满足DB-API规范的的模块必须提供以下属性:

属性名      描述

apilevel     DB-API 模块兼容的DB-API 版本号

threadsafety  线程安全级别

paramstyle   该模块支持的SQL语句参数风格

connect()    连接函数(最常用)

其中 threadsafety是一个整数,取值如下:

0:不支持线程安全,多个线程不能共享此模块

1:初级线程安全支持,多个线程可以共享该模块,但不能共享连接

2:中级线程安全支持,多个线程可以共享模块和连接,但不能共享游标

3:完全线程安全支持,线程可以共享模块,连接,游标

connect() 生成一个connect对象,我们通过这个对象访问数据库,符合标准的模块都会实现connect

MySQLdb 是封装mysql访问和操作的模块。

connect() 的规范参数

参数           描述
user         Username
password       Password
host         Hostname
database       Database name
dsn Data       source name

不是所有的接口程序都是严格按照规范实现的. MySQLdb 就使用了 db 参数而不是规范推荐的 database 参数来表示要访问的数据库.

例:MySQLdb.connect(host='dbserv', db='inv', user='smith')

连接对象 connect

要与数据库进行通信, 必须先和数据库建立连接. 连接对象处理命令如何送往服务器, 以及如何从服务器接收数据等基础功能. 连接成功(或一个连接池)后你就能够向数据库服务器发送请求,得到响应.

连接对象没有必须定义的数据属性。

连接对象方法
Method Name Description
close() 关闭数据库连接
commit() 提交当前事务
rollback() 取消当前事务
cursor() 使用这个连接创建并返回一个游标或类游标的对象
errorhandler (cxn, cur,errcls, errval)

游标对象

一个游标允许用户执行数据库命令和得到查询结果. 一个 Python DB-API 游标对象总是扮演游标的角色, 无论数据库是否真正支持游标.

游标对象的属性
对象属性 描述
arraysize                     使用fechmany()方法一次取出多少条记录, 默认值为 1
connectionn                    创建此游标对象的连接(可选)
description                      返回游标活动状态( 一个包含七个元素的元组): (name, type_code,display_size, internal_ size, precision, scale,                               null_ok); 只有 name和 type_code 是必须提供的.
lastrowid                     返回最后更新行的 id (可选), 如果数据库不支持行 id, 默认返回 None)
rowcount                     最后一次 execute() 操作返回或影响的行数.
callproc(func[,args])               调用一个存储过程
close()                      关闭游标对象
execute(op[,args])                执行一个数据库查询或命令
executemany(op,args)              类似 execute() 和 map() 的结合, 为给定的每一个参数准备并执行一个数据库查询/命令
游标对象属性(续)
对象属性 描述
fetchone()                 得到结果集的下一行
fetchmany([size=cursor.arraysize])    得到结果集的下几行 (几 = size)
fetchall()                 返回结果集中剩下的所有行
__iter__()                 创建一个迭代对象 (可选; 参阅 next())
messages                 游标执行后数据库返回的信息列表 (元组集合) (可选)
next()                   使用迭代对象得到结果集的下一行(可选; 类似 fetchone(), 参阅 __iter__())
nextset()                 移到下一个结果集 (如果支持的话)
rownumber               当前结果集中游标的索引 (以行为单位, 从0 开始) (可选)
setinput- sizes(sizes)           设置输入最大值 (必须有, 但具体实现是可选的)
setoutput- size(size[,col])         设置大列的缓冲区大写(必须有, 但具体实现是可选的)

给出 MySQLdb 一般的操作流程

1,创建connect

sample:

conn = MySQLdb.connect(host = '',user = '' ,port = 3306, charset = 'utf8')

charset 要设置,不然处理中文会乱码。而且当前python 文件也要存成utf8。

2,获取游标对象 以便对数据库访问和操作

sample:

cur = conn.cursor()

3,选择一个database

sample:

conn.select_db('GameDB')

4,指向sql语句 通过游标对象

sample:

cur.execute("select * from CHARBASE where NAME like %s",('%%%s%%' %name))

5,获取结果 ,返回的是元组集

sample:

result = cur.fetchone()

6,处理结果

7,提交事务

sample:

conn.commit()

8 ,关闭游标和连接

cur.close()

conn.close()

python mysql 简单总结(MySQLdb模块 需另外下载)的更多相关文章

  1. python操作三大主流数据库(1)python操作mysql①windows环境中安装python操作mysql数据库的MySQLdb模块mysql-client

    windows安装python操作mysql数据库的MySQLdb模块mysql-client 正常情况下应该是cmd下直接运行 pip install mysql-client 命令即可,试了很多台 ...

  2. 【python】python中 简单的 glob模块

    glob模块是最简单的模块之一,内容非常少.用它可以查找符合特定规则的文件路径名.跟使用windows下的文件搜索差不多.查找文件只用到三个匹配符:"*", "?&quo ...

  3. Python爬虫简单实现之Q乐园图片下载

    根据需求写代码实现.然而跟我并没有什么关系,我只是打开电脑望着屏幕想着去干点什么,于是有了这个所谓的“需求”. 终于,我发现了Q乐园——到底是我老了还是我小了,这是什么神奇的网站,没听过啊,就是下面酱 ...

  4. 教你如何入手用python实现简单爬虫微信公众号并下载视频

    主要功能 如何简单爬虫微信公众号 获取信息:标题.摘要.封面.文章地址 自动批量下载公众号内的视频 一.获取公众号信息:标题.摘要.封面.文章URL 操作步骤: 1.先自己申请一个公众号 2.登录自己 ...

  5. 解决:python安装mysqldb模块报 EnvironmentError: mysql_config not found

    最近学习python操作mysql需要安装mysqldb模块 出现EnvironmentError: mysql_config not found 经网上查看,需要安装mysql客户端开发库libmy ...

  6. windows(32位 64位)下python安装mysqldb模块

    windows(32位 64位)下python安装mysqldb模块 www.111cn.net 编辑:mengchu9 来源:转载 本文章来给各位使用在此windows系统中的python来安装一个 ...

  7. Python Mysql 篇

    Python 操作 Mysql 模块的安装 linux: yum install MySQL-python window: http://files.cnblogs.com/files/wupeiqi ...

  8. Mysql基本操作、C++Mysql简单应用、PythonMysql简单应用

    MySql基本操作 -- 当指定名称的数据库不存在时创建它并且指定使用的字符集和排序方式 CREATE DATABASE IF NOT EXISTS db_name CHARACTER SET UTF ...

  9. python使用mysql的三个模块:mysql.connector、sqlalchemy、MySQLdb

    在python中使用mysql其实很简单,只要先安装对应的模块即可,那么对应的模块都有什么?官方也没指定也没提供,pcat就推荐自己遇到的3个模块:mysql.connector.sqlalchemy ...

随机推荐

  1. CLR via C# 序列化读书笔记

    1. 序列化格式类 a. 二进制BinaryFormatter b. XML流 NetDataContractSerializer c. CLR类据类型与非CLR数据类型之间互操作 XmlSerial ...

  2. Python-Day7 面向对象进阶/异常处理/Socket

    一.面向对象高级语法部分 1.静态方法     通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法,什么是静态方法呢?其实不难理解,普通的方法,可以在实例化后直接调用,并且在方法里 ...

  3. WPF样式——多条件触发器

    希望创建多个条件都为真时才激发的触发器,就需要使用MultiTrigger提供的Condition集合 <Window x:Class="Styles.MultiTrigger&quo ...

  4. yabeblog.me 关于Tomcat7部署 一台机器部署两个项目,一个用域名访问,一个用IP访问

    该内容来自 http://www.yabeBlog.me,转载请说明出处. 1.使用IP访问的项目放在Tomcat7 的webapps目录下面:比如:AAA 2.使用域名访问的项目放在Tomcat7的 ...

  5. mariadb 10 多源复制(Multi-source replication) 业务使用场景分析,及使用方法

    mariadb 10 多源复制(Multi-source replication) 业务使用场景分析,及使用方法 官方mysql一个slave只能对应一个master,mariadb 10开始支持多源 ...

  6. SQL效率的几点心得

    这几天一直在写SQL,有时候对比同样效果的SQL语句,可是查询所需要的时间有时候相差很多,下面总结遇到的几个点: 1.between   and 在有些时候自己比较喜欢使用这个语句,因为可以通过把数据 ...

  7. Struts 2简单配置分析

    要配置Struts 2,首先先要有Struts 2的Jar包,可以去Struts的官网下载(http://struts.apache.org/),这里有3个GA版本可以选择下载,我选择的是最新的2.2 ...

  8. 腾讯WEB前端开发三轮面试经历及面试题

    [一面]~=110分钟  2013/04/24 11:20  星期三 进门静坐30分钟做题. 填空题+大题+问答题 >>填空题何时接触电脑 何时接触前端运算符 字符串处理        延 ...

  9. [Android Training视频系列] 8.1 Controlling Your App’s Volume and Playback

    主要内容:1 鉴别使用的是哪个音频流2 使用物理音量键控制应用程序的音量 3 使用物理播放控制键来控制应用程序的音频播放 视频讲解:http://www.eyeandroid.com/thread-1 ...

  10. cocos2dx中的设计分辨率与屏幕适配策略

    1.首先明确几个概念: 设计分辨率:designResolution,即资源图片的设计尺寸,即美工给你的资源图片的大小,比如(641*964) 屏幕分辨率:又叫帧的大小,glview->setF ...