zoukankan      html  css  js  c++  java
  • python mysql 简单总结(MySQLdb模块 需另外下载)

    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()

  • 相关阅读:
    如何用UE(UltraEdit)删除重复行?--转
    spring源码分析之<context:component-scan/>vs<annotation-config/>
    annotation-config vs component-scan – Spring Core--转
    spring源码分析之spring注解@Aspect是如何工作的?
    Spring之LoadTimeWeaver——一个需求引发的思考---转
    Linux上的free命令详解
    MVC/MVP/MVVM区别——MVVM就是angular,视图和数据双向绑定
    elasticsearch如何安全重启节点
    ES等待任务——是master节点上的task任务
    1. 批量梯度下降法BGD 2. 随机梯度下降法SGD 3. 小批量梯度下降法MBGD
  • 原文地址:https://www.cnblogs.com/lc-cnblong/p/3512000.html
Copyright © 2011-2022 走看看