python基础教程_学习笔记22:数据库支持

数据库支持

python数据库API

支持sql标准的可用数据库有很多,其中多数在python中都有对应的客户端模块。

全局变量

python DB API的模块特性


变量名


用途


apilevel


所使用的python db api版本


threadsafety


模块的线程安全等级


paramstyle


在sql查询中使用的参数风格

异常


异常


超类


描述


StandardError


所有异常的泛型基类


Warning


StandardError


在非致命错误发生时引发


Error


StandardError


所有错误条件的泛型超类


InterfaceError


Error


关于接口而非数据库的错误


DatabaseError


Error


与数据库相关的错误的基类


DataError


DatabaseError


与数据库相关的问题,比如值超出范围


OperationalError


DatabaseError


数据库内部操作错误


IntegrityError


DatabaseError


关系完整性受到影响,比如键检查失败


InternalError


DatabaseError


数据库内部错误,比如非法游标


ProgrammingError


DatabaseError


用户编译错误,比如未找到表


NotSupportedError


DatabaseError


请求不支持的特性(比如回滚)

为了使用基础数据库系统,首先必须连接到它。需要使用具有恰当名称的connect函数,该函数有多个参数,而具体使用哪个参数取决于数据库。

connect函数是常用参数


参数


描述


是否可选


dsn


数据源名称,给出该参数表示数据库依赖



user


用户名



password


用户密码



host


主机名



database


数据库名


连接对象方法


方法名


描述


close()


关闭连接之后,连接对象和它的游标均不可用


commit()


如果支持的话就提交挂起的事务,否则不做任何事


rollback()


回滚挂起的事务(可能不可用)


cursor()


返回连接的游标对象

rollback方法可能不可用,因为不是所有的数据库都支持事务。

commit方法总是可用,但如果数据库不支持事务,它就没有任何作用。如果关闭了连接,但还有未提交的事务,它们会隐式地回滚——但只有在数据库支持回滚的时候才可以。

cursor方法引入另外一个主题:游标对象。通过游标执行sql查询并检查结果,游标比连接支持更多的方法,而且可能在程序中更好用。

游标对象方法


名称


描述


callproc(name[,params])


使用给定的名称和参数(可选)调用已命名的数据库程序


close()


关闭游标之后,游标不可用


execute(oper[,params])


执行sql操作,可能使用参数


execute(oper,pseq)


对序列中的每个参数执行sql操作


fetchone()


把查询的结果集中的下一行保存为序列或者None


fetchmany([size])


获取查询结果集中的多行,默认尺寸为arraysize


fetchall()


将所有(剩余)的行作为序列的序列


nextset()


跳至下一个可用的结果集(可选)


setinputsizes(sizes)


为参数预先定义内存区域


setoutputsize(size[,col])


为获取的大数据值设定缓冲区尺寸

游标对象特性


名称


描述


description


结果列描述的序列,只读


rowcount


结果中的行数,只读


arraysize


fetchmany中返回的行数,默认为1

类型

数据库对插入到具有某种类型的列中的值有不同的要求,是为了能正确地与基础sql数据库进行交互操作,DB API定义了用于特殊类型和值的构造函数及常量(单例模式)。

DB API构造函数和特殊值


名称


描述


Date(year,month,day)


创建保存日期值的对象


Time(hour,minute,second)


创建保存时间值的对象


Timestamp(y,mon,d,h,min,s)


创建保存时间戳值的对象


DateFromTicks(ticks)


创建保存来自新纪元以来秒数的对象


TimeFromTicks(ticks)


创建保存来自秒数的时间值的对象


TimestampFromTicks(ticks)


创建保存来自秒数的时间戳值的对象


Binary(string)


创建保存二进制字符串值的对象


STRING


描述基于字符串的列类型


BINARY


描述二进制列


NUMBER


描述数字列


DATETIME


描述日期/时间列


ROWID


描述行ID列

python基础教程_学习笔记22:数据库支持

时间: 2024-08-04 10:27:46

python基础教程_学习笔记22:数据库支持的相关文章

python基础教程_学习笔记10:异常

异常 什么是异常 Python用异常对象来表示异常情况.遇到错误后,会引发异常.如果异常对象并未被处理或捕捉,程序就会用所谓的回溯(Traceback,一种错误信息)终止执行: >>> 1/0 Traceback (most recent call last): File "<pyshell#0>", line 1, in <module> 1/0 ZeroDivisionError: integer division or modulo by

python基础教程_学习笔记6:字典

字典 映射(mapping),一种可通过名字引用值得数据结构. 字典是python中唯一内建的映射类型. 字典中的值没有特殊的顺序,但都存储在一个特定的键(key)里.键可以是数字.字符串甚至是元组. 字典的使用 某些情况下,字典比列表更加适用,比如: 表征游戏棋盘的状态,每个键都是由坐标值组成的元组: 存储文件修改数,用文件名作为键: 数字电话/地址簿: 假如有一个人名列表如下: >>>names=['Alice','Beth','Cecil','Dee-Dee','Earl'] 如果

python基础教程_学习笔记17:标准库:一些最爱——time

标准库:一些最爱 time time模块所包含的函数能够实现以下功能: 获取当前时间.操作系统时间和日期.从字符串读取时间以及格式化时间为字符串. 日期可以用实数(从"新纪元"的1月1日0点开始计算到现在的秒数,新纪元是一个与平台相关的年份,对unix来说是1970年),或者是包含有9个整数的元组. 日期元组的字段含义 如元组: (2008,1,21,12,2,56,0,21,0) 表示2008年1月21日12时2分56秒,星期一,且是当年的第21天(无夏令时). 索引 字段 值 0

python基础教程_学习笔记2:序列-2

序列-2 通用序列操作 序列相加 通过加号对列表进行连接操作: 列表 >>> [1,3,4]+[2,5,8] [1, 3, 4, 2, 5, 8] 字符串 >>> '134'+'258' '134258' 元组 >>> (1,2,3)+(2,5,8) (1, 2, 3, 2, 5, 8) 元素数据类型不同的列表 >>> [[1,3],[3,9]]+[[2,2],'abc'] [[1, 3], [3, 9], [2, 2], 'abc'

python基础教程_学习笔记23:图形用户界面

图形用户界面 丰富的平台 在编写Python GUI程序前,需要决定使用哪个GUI平台. 简单来说,平台是图形组件的一个特定集合,可以通过叫做GUI工具包的给定Python模块进行访问. 工具包 描述 Tkinter 使用Tk平台.很容易得到.半标准. wxpython 基于wxWindows.跨平台越来越流行. PythonWin 只能在Windows上使用.使用了本机的Windows GUI功能. JavaSwing 只能用于Jython.使用本机的Java GUI. PyGTK 使用GTK

python基础教程_学习笔记3:元组

元组 元组不能修改:(可能你已经注意到了:字符串也不能修改.) 创建元组的语法很简单:如果用逗号分隔了一些值,那么你就自动创建了元组. >>> 1,3,'ab' (1, 3, 'ab') 元组也是(大部分时候是)通过圆括号括起来的. >>> (1,3,'13') (1, 3, '13') 空元组可以用没有内容的两个圆括号来表示. 如何实现包括一个值的元组呢? >>> (5) 5 >>> ('ab') 'ab' >>>

python基础教程_学习笔记9:抽象

抽象 懒惰即美德. 抽象和结构 抽象可以节省大量工作,实际上它的作用还要更大,它是使得计算机程序可以让人读懂的关键. 创建函数 函数可以调用(可能包含参数,也就是放在圆括号中的值),它执行某种行为并且返回一个值.一般来说,内建的callable函数可以用来判断函数是否可调用: >>> import math >>> y=1 >>> x=math.sqrt >>> callable(x) True >>> callab

python基础教程_学习笔记5:字符串

字符串 基本字符串操作 字符串也是序列,因此序列的基本操作(索引.分片.连接.乘法.长度.求最大值和最小值.成员资格)对字符串同样适用: 索引 >>> 'a_string'[0] 'a' 长度 >>> len('a_string') 8 求最大值 >>> max('a_string') 't' 求最小值 >>> min('a_string') '_' 乘法 >>> 'a_string'*2 'a_stringa_st

python基础教程_学习笔记26:好玩的编程

好玩的编程 程序设计的柔术 当大家坐下来并计划应该如何组织程序的时候,对于这个具体的程序,还没有任何的经验.在实现功能的时候,会逐渐地学到对原始设计有用的新知识.不应该无视一路走来所吸取的教训,而应该将它们用于软件的重新设计(或重构)中. 灵活性的实现包括许多方面,下面是其中两个: 原型设计:python最棒的功能之一就是可以快速地编写程序.编写原型程序是更充分地了解问题的一种很好的方法. 配置:灵活性有很多种存在形式.配置的目的就是让程序某部分的改变更简单,对于你和用户来说都是这样. 第三点是