python--数据库支持

一、python数据库编程接口(API):

1、全局变量:任何支持2.0版本DB API的数据库模块都必须定义3个描述模块特性的全局变量,这样做的原因是API设计很灵活,以支持不同的底层机制。

1、apilevel:字符串常量,提供正在使用的API版本号。

2、threadsafety:模块的线程安全等级,是个取值范围为0-3的整数。0表示线程完全不共享模块。3表示线程完全共享模块。1表示线程本身共享模块,但不对连接共享。

3、paramstyle:在SQL查询中使用的参数风格(在执行多次类似查询的时候,参数是如何被拼接到SQL查询中的)。

‘format‘表示标准的字符串格式化,可以在参数中进行拼接的地方插入%s。

‘pyformat‘表示扩展的格式代码,用于字典拼接中,比如%(foo)。

‘qmark‘使用问号。

‘numeric‘使用:1或者:2格式字段(数字表示参数的序号)。

‘named‘表示foobar这样的字段,其中foobar为参数名。

2、异常:API定义了一种层次结构的异常,以便尽可能进行错误处理。

1、StandardError:所有异常的泛型基类。

2、Waring:它的超类StandardError,在非致命错误时引发。

3、Error:它的超类StandardError,所有错误条件的泛型超类。

4、InterfaceError:它的超类Error,关于接口而非数据库的错误。

5、DatabaseError:它的超类Error,与数据库相关的错误的基类。

6、DataError:它的超类DatabaseError,与数据相关的问题,比如值超出范围。

7、OperationalError:它的超类DatabaseError,数据库内部操作错误。

8、IntegityError:它的超类DatabaseError,关系完整性受到影响,比如键检查失败。

9、InternalError:它的超类DatabaseError,数据库内部错误,比如非法游标。

10、ProgramingError:它的超类DatabaseError,用户编程错误,比如未找到表。

11、NotSupportedError:它的超类DatabaseError,请求不支持的特性(比如回滚)

3、连接和游标:

1、连接connect函数:

connect函数常用的参数:

1、dsn:数据源名称,给出该参数表示数据库依赖。

2、user:用户名。

3、password:用户密码。

4、host:主机名。

5、database:数据库名。

connect函数返回连接对象,表示目前和数据库的会话。连接对象支持的方法:

1、close():关闭连接,关闭后连接对象和它的游标均不可用。

2、commit():如果支持的话就提交挂起事务,否则不做任何事情。

3、rollback():回滚挂起的事务。(可能不可用)。

4、cursor():返回连接的游标对象。

2、游标对象:通过游标执行SQL查询并检查结果。

游标对象的方法:

1、callproc(name,[, params]):使用给定名称和参数调用已命名的数据库过程。

2、close():关闭游标。

3、execute(oper,[, params]) :执行一个SQL操作,可能带有参数。

4、executemany(oper,pseq):对序列中的每个参数集执行SQL操作。

5、fetclone():把查询的结果集中的下一行保存为序列,或者None。

6、fetchmany([size]):获取查询结果集中的多行,默认尺寸为arraysize。

7、fetchall():将所有剩余的行作为序列的序列。

8、nextset():跳转下一个可以的结果集(可选)。

9、setinputsizes(sizes):为参数预先定义内存区域。

10、setoutputsize(size[, col]):为获取的大数据值设定缓存区尺寸。

2、游标对象的特性:

1、description:结果列描述的序列,只读。

2、rowcount:结果中的行数,只读。

3、arraysize:fetchmany中返回的函数,默认1。

4、类型:DB API定义了用于特殊类型和值的构造函数及常量(单例模式)。

1、Date(year,month,day):创建保存日期值的对象。

2、Time(hour,minute,second):创建保存时间值的对象。

3、Timestamp(y,mon,d,h,min,s):创建保存时间戳值的对象。

4、DateFromTicks(ticks):创建保存自新纪元以来秒数的对象。

5、TimeFromTicks(ticks):创建保存来自秒数的时间值对象。

6、TimestampFromTicks(ticks):创建保存来自秒数的时间戳值的对象。

7、Binary(string):创建保存二进制字符串值的对象。

8、SIRING:描述基于字符串的列类型(比如CHAR)。

9、BINARY:描述二进制列(比如LONG或RAW)。

10、NUMBER:描述数字列。

11、DATETIME:描述日期\时间列。

12、ROWID:描述行ID列。

5、数据库应用程序示例:

1、创建一个people表,包含id,name,age字段。

2、往people表中插入1行数据,id=1,name=lisa,age=25

3、查询

使用fetchone():把查询的结果集的下一行作为序列或者None:

使用fetchall():把查询结果集的所有行作为序列的序列。

迭代对象遍历:

4、删除数据

5、一次插入多条数据:

1、参数绑定:

2、使用executemany():

3、利用生成器实现:

5、update:

6、delete:

7、select:

8、executescript的用法:

时间: 2024-10-10 01:36:00

python--数据库支持的相关文章

<<Python基础教程>>学习笔记 | 第13章 | 数据库支持

备注:这章内容相对介绍的比较简单,不过例子比较使用,主要是要掌握如果连接,使用数据库,并以SQLite做示例 ------ Python数据库API 为了解决Python中各种数据库模块间的兼容问题,现在已经通过了一个标准的DB API.目前的API版本(2.0)定义在PEP249中的Python Database API Specification v2.0中. 异常 为了尽可能准确地处理错误,API中定义了一些异常.它们被定义在一种层次结构中,所以可以通过一个except块捕捉多种异常. 连

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

数据库支持 python数据库API 支持sql标准的可用数据库有很多,其中多数在python中都有对应的客户端模块. 全局变量 python DB API的模块特性 变量名 用途 apilevel 所使用的python db api版本 threadsafety 模块的线程安全等级 paramstyle 在sql查询中使用的参数风格 异常 异常 超类 描述 StandardError 所有异常的泛型基类 Warning StandardError 在非致命错误发生时引发 Error Stand

Python数据库编程

简介 在任何应用中,都需要持久化存储,一般有3种基础的存储机制:文件.数据库系统以及一些混合类型.这种混合类型包括现有系统上的API.ORM.文件管理器.电子表格.配置文件等.在了解数据库以及如何在Python中使用他们之前,首先需要知道数据库概念以及SQL语句. 底层存储 数据库通常使用文件系统作为基本的持久化存储,它可以是普通的操作系统文件.专用的操作系统文件,甚至是原始的磁盘分区. 用户接口 大多数数据库系统提供了命令行工具,可以使用其执行SQL语句或查询.此外还有一些GUI工具,使用命令

python数据库(mysql)操作

一.软件环境 python环境默认安装了sqlite3,如果需要使用sqlite3我们直接可以在python代码模块的顶部使用import sqlite3来导入该模块.本篇文章我是记录了python操作mysql数据库,mysql数据库下载 由于我之前安装的是wampserver,默认安装了php.mysql和apache这3个环境,因此我没有在单独安装mysql数据库,只是下载了一个mysql管理工具Navicat for MySQL.在使用Navicat for MySQL连接本地mysql

Django 多数据库支持

很多时候,需要去其他数据库查询数据,都将会面临多数据库支持问题. 1.在settings文件内添加多数据库连接 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), }, 'test': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'pro_control', 'USER':

让python cookie支持特殊字符

让python cookie支持特殊字符 先对cookie做下简单的介绍 cookie的作用: tcp协议能够通过三次握手建立连接,client发送的多次请求能够通过句柄维护同一个连接.可是http协议是一种无状态的协议,对于浏览器发送的多次请求.server是无法区分是不是同一个浏览器发送的.这样就须要使用额外的数据维护会话. 服务端收到浏览器的请求.在响应的时候能够种cookie.这样client与服务端能够将cookie来回传递,从而维护一个session状态 cookie有2个必备的属性

平台主数据库支持类型及配置说明

1.主数据库支持的类型:      平台基础数据库只能用三种:SqlServer9,Oracle,Oracle11g,如下图,可以采用三种不同的驱动来连接不同的数据库, 下面就三种不同驱动加以说明:SqlServer9:用于连接SqlServer2005.SqlServer2008及更新版本的SQL SERVER数据库,该数据库采用微软提供的驱动,稳定可靠. Oracle:可用于连接所有版本的Oracle数据库,采用的是.Net提供的Oracle驱动,也就是微软for Oracle的驱动,即使用

教你如何让数据库支持emoji表情符存储

From: http://www.cnblogs.com/janehoo/archive/2016/04/06/5359800.html 一.教你如何让数据库支持emoji表情符存储 解决方式:更换字符集utf8-->utf8mb4 上周有开发人员反馈一个问题:前台应用抓取微博信息,每天总有几条数据插入不成功.应用日志显示: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\xAA",...' for column '

General框架如何实现多数据库支持

关于用C#实现多数据库支持的方式,大家都会多少了解,本文从General框架的开发思路角度详细介绍General框架实现多数据库支持的方式,使更多的人了解General框架的底层实现并得到所需的相关知识.我在开发General框架之中,从网络中获取到了很多知识,对其他ORM框架亦有借鉴,其中借鉴最多的是NBear框架和NHibernate框架,我将从各处得到的开发思想融合进来,形成了我自己的开发方式. 简单说来,General框架支持多数据库的实现思路,无非是以下几点: 1.Ado.Net的多数

python 数据库查询条件`不等于`

1.python 数据库查询条件不等于 当在做数据库查询的时候,想根据业务需求进行条件的筛选或过滤, 但是django封装的数据库语句中没有 '不等于' 查询操作. 2.例如:通过以下语句进行'不等于查询' data = User-objects.filter(id != '1').values('id','name','age') 此语句会报错 3.解决方案: from django.db.models import Q data = User.objects.filter(~Q(id= '1