10、Python-数据库支持
2013-06-15 20:28
477 查看
使用数据库的好处:
a、支持数据的并发访问,多个用户同时对基于磁盘的数据进行读写而不造成任何文件的损坏;
b、支持根据多个数据字段或属性进行复杂的搜索;
1、如何操作数据库,API
数据库的种类有很多,并且它们的功能基本都是一样的,为了对数据库进行统一的操作,大多数语言都提供了简单的、标准化的数据库接口(API)。为了易于编写跨数据库的程序,所有数据库的包装模块都应当遵循这个接口。
2、支持的API函数
连接数据库connect(),该函数返回连接对象,代表了与要连接的数据库的会话。连接对象支持一下方法:
游标对象的方法:
游标对象特性:
3、程序示例
以SQLite数据库为例,它是小型的嵌入式SQL数据库,它的python包装叫做PYSQLite。它速度快,易于使用,并且不需要建立单独的服务器。
3.1 创建和填充表
3.2 搜索和处理结果
a、支持数据的并发访问,多个用户同时对基于磁盘的数据进行读写而不造成任何文件的损坏;
b、支持根据多个数据字段或属性进行复杂的搜索;
1、如何操作数据库,API
数据库的种类有很多,并且它们的功能基本都是一样的,为了对数据库进行统一的操作,大多数语言都提供了简单的、标准化的数据库接口(API)。为了易于编写跨数据库的程序,所有数据库的包装模块都应当遵循这个接口。
2、支持的API函数
连接数据库connect(),该函数返回连接对象,代表了与要连接的数据库的会话。连接对象支持一下方法:
close() | 关闭连接之后,连接对象和它的游标均不可用 |
commit() | 如果支持的话提交挂起的事务,否则不做任何事 |
rollback() | 回滚挂起的事务 |
cursor() | 返回连接的游标对象(通过游标对象执行SQL查询并检查结果,结果行可以一个一个地获得,也可以很多个一起获得) |
callproc(name[,params]) | 使用给定的名称和参数(可选)调用已命名的数据库程序 |
close() | 关闭游标之后,游标不可用 |
execute(oper[,params]) | 执行SQL参数,可能使用参数 |
executemany(opr, pseq) | 对序列中的每个参数执行SQL操作 |
fetchone() | 把查询的结果集中的下一行保存为序列,或者None |
fetchmany([size]) | 获取查询结果集中的多行,默认尺寸为arraysize |
fetchall() | 以序列的形式获取结果集中的所有行 |
nextset() | 跳至下一个可用的结果集(可选) |
setinputsizes(sizes) | 为参数预先定义内存区域 |
setoutputsize(size[,col]) | 为获取的大数据值设定缓冲区尺寸 |
description | 结果列描述的系列,只读 |
rowcount | 结果中的行数,只读 |
arraysize | fetchmany中返回的行数,默认为1 |
3、程序示例
以SQLite数据库为例,它是小型的嵌入式SQL数据库,它的python包装叫做PYSQLite。它速度快,易于使用,并且不需要建立单独的服务器。
3.1 创建和填充表
import sqlite def convert(value): if value.startswith('~'): return value.strip('~') if not value: value = '0' return float(value) conn = sqlite.connect('food.db') curs = conn.cursor() curs.execute(''' CREATE TABLE food ( id TEXT PRIMARY KEY, desc TEXT, water FLOAT, kcal FLOAT, protein FLOAT, fat FLOAT, ash FLOAT, carbs FLOAT, fiber FLOAT, sugar FLOAT ) ''') field_count = 10 markers = ', '.join(['%s']*field_count) query = 'INSERT INTO food VALUES (%s)' % markers for line in open('ABBREV.txt'): fields = line.split('^') vals = [convert(f) for f in fields[:field_count]] curs.execute(query, vals) conn.commit() conn.close()
3.2 搜索和处理结果
import sqlite, sys conn = sqlite.connect('food.db') curs = conn.cursor() query = 'SELECT * FROM food WHERE %s' % sys.argv[1] print query curs.execute(query) names = [f[0] for f in curs.description] for row incurs.fetchall(): for pair in zip(names, row): print '%s: %s' % pair print
相关文章推荐
- android数据库sqlite 不支持select top 10的写法
- [数据库测试]强烈推荐一个python ODBC数据源插件,可支持Oracle,Db2,Mysql,Sql-server以及各种数据库版本,附例子和测试程序
- [数据库测试]强烈推荐一个python ODBC数据源插件,可支持Oracle,Db2,Mysql,Sql-server以及各种数据库版本,附例子和测试程序
- 使用 Python 和 Oracle 数据库实现高并发性 了解如何借助线程和并发性提升支持 Oracle 数据库的 Python 应用程序的吞吐量和响应性。
- 【Python环境】【Redis数据库安装(windows 10 64bit)】
- python学习第十三章——数据库支持
- <<Python基础教程>>学习笔记 | 第13章 | 数据库支持
- python之数据库支持
- python支持的数据库适配器
- <<Python基础课程>>学习笔记 | 文章13章 | 数据库支持
- 【循序渐进学Python】14.数据库的支持
- [数据库测试]强烈推荐一个python ODBC数据源插件,可支持Oracle,Db2,Mysql,Sql-server以及各种数据库版本,附例子和测试程序
- Python-数据库支持
- Python新路程(10)MySQLdb支持
- python进阶学习笔记(三)数据库支持
- python 基础教程 13数据库支持
- python学习笔记10:Access数据库转换为SQLite数据库之前的准备
- python进阶1--数据库支持
- 22. Python脚本学习笔记二十二数据库支持
- 基于DragonBoard 410c的家庭智能环保卫士——(10)数据库python代码实现