Python--MySQLdb

作用:
  • MYSQLdb是Python链接mysql的接口api
  • 特点
    • 与Python数据库接口2.0兼容
    • 线程安全
    • 线程友好(线程不能互相阻塞)
Python版本:
  • Python2.3 -- Python2.7
函数定义:
  • _mysql.connect() #通过unix的socket链接本机的数据库,用户名为系统用户名,没有密码,没有指定数据库
  • _mysql.connect("localhost","joebob","moonpie","thangs") #参数分别为:host、username、password、database
  • _mysql.connect(host="localhost",port=3307,user="joebob", passwd="moonpie",db="thangs",read_default_file="~/.my.cnf", conv=my_conv, unix_socket, compress, connect_timeout, named_pipe, init_command, use_unicode, charset, ssl, sql_mode) #命令参数都是可选;conv指示数据类型转换规则,my_conv = { FIELD_TYPE.LONG: int }
  • Connection对象:
    • db.query("""SELECT spam, eggs, sausage FROM breakfast WHERE price < 5""") #sql语句可以跨越多行
    • db.store_result() #立即获取服务器所有查询结果返回给客户端
    • db.use_result() #数据结果存储在服务器端,由客户端来逐行获取查询结果
    • commit() #如果数据库支持事务,则进行事务提交;否则,不做任何事
    • rollback() #如果数据库支持事务,则进行事务回滚;否则,抛出异常“NotSupportedError”
    • cursor([cursorclass]) #返回游标
  • Cursor对象:
    • callproc(procname, args) #存储过程只在MySQL5.0以后的版本中支持
    • close() #在一个已经关闭的cursor上执行其它操作,会抛出异常“ProgrammingError”
    • info() #返回上一次查询的信息
    • setinputsize()
    • setoutputsize()
    • nextset()
    • fetchone()
    • fetchmany(n)
    • fetchall()
    • execute(sql, (params))
    • executemany(sql, [(params1),(params2)])
  • Cursor相关类:
    • BaseCursor #Cursor对象的基类
    • CursorStoreResultMixIn #使用mysql_store_result()将数据全部拉回并存储在客户端
    • CursorUseResultMixIn #使用mysql_use_result(),通过fetch操作逐行从服务器取回数据
    • CursorTupleRowsMixIn #查询结果以数组的形式返回
    • CursorDictRowsMixIn #查询结果以字典形式返回,key为字段名,value为字段值,必要时为key加上表明
    • Cursor #由CursorWarningMixIn、CursorStoreResultMixIn、CursorTupleRowsMixIn、BaseCursor组成
    • DictCursor
    • SSCursor #“server-side”cursor,使用CursorUseResultMixIn,建议在结果集非常大的时候使用
    • SSDictCursor
  • result.fetch_row(maxrows = 0, how=0) #从服务器端获取结果数据,不超过maxrows指定行数,当maxrows=0时表示获取全部结果;how参数只是结果集返回的形式,how=0表示以数组形式返回,how=1表示以字典形式返回,how=2意义与how=1相同
应用实例:
  • 样例:
  1. import MySQLdb
  2. db = MySQLdb.connect(passwd = "root", db = "puppy")
  3. c = db.cursor()
  4. max_price = 5
  5. c.execute("""SELECT spam, eggs, sausage FROM breakfast WHERE price < %s""", (max_price,))
  6. c.fetchone()
  7. c.executemany(
  8.         """INSERT INTO breakfast (name, spam, eggs, sausage, price)
  9.         VALUES (%s, %s, %s, %s, %s)""",
  10.         [
  11.         ("Spam and Sausage Lover's Plate", 5, 1, 8, 7.95 ),
  12.         ("Not So Much Spam Plate", 3, 2, 0, 3.95 ),
  13.         ("Don't Wany ANY SPAM! Plate", 0, 4, 3, 5.95 )
  14.         ] )
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值