GUI部分暂时跳过,数据库主要学习sqlite。

python DB API

异常

异常 超类 描述
StandardError 所有异常的超类
Warning StandardError 发生非致命问题引发
Error StandardError 所有错误条件的超类
InterfaceError Error 与接口(而不是数据库)相关的错误
DatabaseError Error 与数据库相关错误的超类
DataError DatabaseError
OperationError DatabaseError 与数据相关的问题,如值不再合法范围
IntegrityError DatabaseError 数据库操作内部的错误
InternalError DatabaseError 关系完整性遭到破坏,如键未通过检查
ProgrammingError DatabaseError 用户编程错误,如未找到数据库表
NotSupportedError DatabaseError 请求不支持的功能,如回滚

connect()

connect用于连接数据库,返回一个连接对象

参数名 描述 是否可选
dsn 数据源名称,随数据库而异
user 用户名
password 密码
host 主机名
database 数据库名称

连接对象支持以下方法:

方法名 描述
close() 关闭连接对象
commit() 提交修改(不支持什么也不做)
rollback() 回滚未提交(可能不可用)
cursor() 返回连接的游标对象

游标对象的方法:

方法名 描述
close() 关闭此游标对象
fetchone() 得到结果集的下一行,没有返回None
fetchmany([size = cursor.arraysize]) 得到结果集的下多行
fetchall() 得到结果集中剩下的所有行
excute(oper[, params]) 执行一个数据库操作
excutemany(oper, pesq) 执行多个数据库操作
setinputsizes(sizes) 用于为参数预定义内存区域
setoutputsize(size[,col]) 为取回大量数据而设置缓冲区长度

游标对象的属性:

属性 描述
description 由结果列描述组成的序列
arraysize 使用fetchmany()方法一次取出行数,默认为1
rowcount fetvhmany返回的行数,默认为1

类型

名称 描述
Date(year,month,day) 创建包含日期值的对象
Time(hour,mintue,second) 创建包含时间值的对象
Timestamp(y,mon,d,h,min,s) 创建包含时间戳的对象
Binart(string) 创建包含二进制字符串的列
STRING 描述基于字符串的列
BINARY 描述二进制列
NUMBER 描述数字列
DATETIME 描述日期/时间列
ROWID 描述行ID列

sqlite

sqlite是一种轻量级的数据库,由单个文件构成,无需服务端。

import sqlite3
con = sqlite3.connect('test.db') #不存在自动创建
curs = con.cursor() #这个游标用于执行sql查询
curs.exctue('''
 A sql 

''')#执行sql语句
con.commit() #用于提交修改,最好一次修改过后马上提交,不要关闭连接前提交
con.close() #关闭连接

使用executemany插入大批量数据速度会明显提升。