《python核心编程》读书笔记-mysql-connector

DB-API

DB-API 是阐明一系列所需对象和数据库访问机制的标准,它可以为不同的数据库适配器和底层数据库系统提供一致性的访问

DB-API模块属性描述
apilevel需要适配器兼容的 DB-API 版本
threadsafety本模块的线程安全级别
paramstyle本模块的 SQL 语句参数风格
connect()Connect()函数
DB-API异 常类描 述
InterfaceError数据库接口(非数据库)错误
DatabaseError数据库错误
DataError处理数据时出现问题
OperationlError数据库操作执行期间出现错误
IntegrityError数据库关系完整性错误
InternalError数据库内部错误
ProgrammingError SQL命令执行失败
NotSupportedError出现不支持的操作

Connection 对象

应用与数据库之间进行通信需要建立数据库连接。它是最基本的机制,只有通过数据库连接才能把命令传递到服务器,并得到返回的结果。当一个连接(或一个连接池)建立后,可以创建一个游标,向数据库发送请求,然后从数据库中接收回应。

Connection 对象方法描述
close ()关闭数据库连接
commit()提交当前事务
rollback()取消当前事务
cursor()使用该连接创建(并返回)一个游标或类游标的对象
errorhandler (cxn, cur, errcls, errval )作为给定连接的游标的处理程序

Cursor 对象

当建立连接后,就可以和数据库进行通信了。游标可以让用户提交数据库命令,并获得查询的结果行。 Python DB-API 游标对象总能提供游标的功能, 即使是那些不支持游标的数据库。此时,如果你创建了一个数据库适配器,还必须要实现 cursor 对象,
以扮演类似游标的角色。这样,无论你将数据库系统切换到支持游标的数据库还是不支持游标的数据库,都能保持 Python 代码的一致性。当游标创建好后,就可以执行查询或命令(或多个查询和命令),并从结果集中取回一行或多行结果。

Cursor对象属性描 述
arraysize使用 fetchmany()方法时,一次取出的结果行数,默认为 1
connection创建此游标的连接(可选)
description返回游标活动状态(7 项元组):(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 开始,可选)
setinputsizes(sizes)设置允许的最大输入大小(必须有,但是实现是可选的)
setoutputsize(size[,col])设置大列获取的最大缓冲区大小(必须有,但是实现是可选的)

mysql-connector

python3建议使用mysql-connector模块

示例

>>>import mysql.connector
>>>cnx = mysql.connector.connect(user='hal',password='9714mm',host='192.168.253.129',database='mydb')
>>>cursor = cnx.cursor()
>>>query = ("show tables")
>>>cursor.execute(query)
>>>for data in cursor.fetchall():
...    print(data)
...   
('Customers',)
('OrderItems',)
('Orders',)
('Products',)
('Productustomers',)
('Vendors',)
('t1',)

一般流程就是用cursor.execute()执行命令,用cursor.fetchall()获取数据

参考文档:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值