sqlite3模块,SQLite 是用 C 写的轻量级的数据库,sqlite3 模块提供了对数据库的接口,要使用必须首先创建一个 Connection 对象,代表连接至数据库,然后才能继续操作,操作数据库的语句和操作别的数据库一样,都是 create、insert、select 等

模块方法和常数:

sqlite3.version、sqlite3.version_info:模块版本,分别以字符串和元组形式返回
sqlite3.sqlite_version、sqlite3.sqlite_version_info:SQLite 版本,分别以字符串和元组形式返回
sqlite3.PARSE_DECLTYPES、sqlite3.PARSE_COLNAMES:用于 detect_types 参数,设置了前者可以在创建数据库表的时候在每列数据名字后面加上数据类型,设置了后者可以在选择的时候在每列后面加上类似 'as "x [datetime]"' 来指定数据类型。大概是这样的意思,不是很了解
sqlite3.connect(database[, timeout, detect_types, isolation_level, check_same_thread, factory, cached_statements]):连接至数据库 datebase(可以存在缓存中,用 ":memory:" ),timeout 设置连接解锁等待时间,在多个连接都连至一个数据库时,对数据库的修改会使他上锁,直到修改数据被提交。detect_types 默认没有,可以设置上面提到的两种。isolation_level 设置自动提交,一般默认。factory cached_statements 设置缓存语句数,默认100。
sqlite3.register_converter(typename, callable):设置如何把数据库类型名字为 typename 的数据转换成 python 类型,一般是自定义的类
sqlite3.register_adapter(type, callable):设置如何把 python 的 type 类型转换成数据库支持的类型,一般是自定义的类
sqlite3.complete_statement(sql):判断 sql 语句是否以分号结尾,不判断语法是否正确
模块的类:
1、Connection 对象

1.1 对象属性

isolation_level:获取或设置当前的 isolation_level
row_factory:可以把这个属性设置成一个接收 cursor 和 row 两个参数的可调用对象,这样就可以用更好的方式返回结果。内置有 sqlite3.Row
text_factory:默认为 unicode,会把数据库的 TEXT 属性返回为 Unicode 对象,设置成 str 可以返回字符串,内置还有 sqlite3.OptimizedUnicode,可以对不是 ASCII 数据的转成 unicode 对象,其余转成字符串
total_changes:返回打开数据库后所有改动总和

1.2 对象方法

cursor(factory=Cursor):创建一个 cursor 对象
commit():提交修改,更新数据库
rollback():返回至上一次提交修改后的状态
close():关闭数据库连接,不会自动调用 commit
execute(sql[, parameters]):执行 sql 语句,会隐式创建一个 cursor
executemany(sql[, parameters]):利用传入的 parameters 执行 sql 语句多次,会隐式创建一个 cursor
executescript(sql_script):执行一堆 sql 语句,会隐式创建一个 cursor
create_function(name, num_params, func):创建一个可以用于 SQL 语句里的函数,名字为 name,接收 num_params 个参数,func 为 python 的一个可调用对象
create_aggregate(name, num_params, aggregate_class):创建一个可以用于 SQL 语句里的自定义合计函数,名字为 name,接收 num_params 个参数,aggregate_class 类必须要定义有 step() 函数接收参数,finalize() 函数返回数据库支持类型的合计结果
create_collation(name, callable):创建一个可以用于 SQL 语句里的自定义排序函数,名字为 name,callable 通常会接收 utf8 编码的两个字符串,返回 -1 代表前者小于后者,0 代表相等,1 代表前者大于后者
interrupt():从另一个线程里打断正在进行的操作
set_authorizer(authorizer_callback)、set_progress_handler(handler, n):注册一个回调函数,不知道怎么用
enable_load_extension(enabled):设置是否允许加载扩展共享库
load_extension(path):从 path 加载扩展共享库
iterdump():返回一个迭代器,包含了以数据库 TEXT 格式表示的数据,对把数据从内存中保存至磁盘很有用

2、Cursor 对象,操作数据库的游标

2.1 对象属性

rowcount:只要没使用过 executeXX() 这类方法,返回都是 -1,使用过的话会累加
lastrowid:只读属性,只有刚执行过 insert 操作才会返回值,否则都是 None
description:只读属性,返回上一次访问的列的名字
connection:只读属性,返回 Cursor 的 Connection 对象

2.2 对象方法

execute(sql[, parameters])、executemany(sql, seq_of_parameters)、executescript(sql_script):执行对应 sql 语句,同 Connection 对象
fetchone():返回下一行数据
fetchmany([size=cursor.arraysize]):列表形式返回数据,大小指定为 size
fetchall():返回剩下的所有数据

3、Row 对象,用于 Connection 对象的 row_factory 属性,可以使返回结果像个带名字元组

3.1 对象方法

keys():返回结果中各列的名字,可以用这些名字访问属性

Python2.7-sqlite3的更多相关文章

  1. [原创] 更新Ubuntu自带的python2.X版本 ImportError: No module named pip;ImportError: No module named _sqlite3

    Ubuntu14.04自带的Python2版本,是2.7.6的,想更新为最新的2.7.11,操作如下: 1. 从python官网下载2.7.11的source源码包 Python-2.7.11.tgz ...

  2. python加载sqlite3报错:No module named _sqlite3

    环境为Ubuntu16.04 Apache2.4 Python2.7.13 django 1.8 今天部署apache+django,经过各种折腾,好不容易配置完了,发现错误Apache的日志里有一项 ...

  3. 源码安装ipython,并在ipython中整合spark

    一.安装ipython 下载ipython, https://pypi.python.org/packages/source/i/ipython/ipython-2.2.0.tar.gz#md5=b9 ...

  4. 利用ngxtop实时监控nginx的访问情况

    关于对nginx web server的实时访问的实时监控问题,我很久之前就想实现的,现在虽有nginx自带的status扩展,但那是全局的,无法细分到vhost,并且提供的metric也很少,加之目 ...

  5. Python学习笔记总结(二)函数和模块

    一.函数 函数的作用:可以计算出一个返回值,最大化代码重用,最小化代码冗余,流程的分解. 1.函数相关的语句和表达式 语句        例子 Calls        myfunc(‘diege', ...

  6. ImportError: No module named _sqlite3 - 代码分享

    ImportError: No module named _sqlite3 - 代码分享 ImportError: No module named _sqlite3 作者:86市场网       点击 ...

  7. from setuptools import setup, find_packages ImportError: No module named set

    1 from setuptools import setup, find_packages ImportError: No module named set wget http://peak.tele ...

  8. 通过ngxtop实时监控webserver的访问情况 / 解决ImportError: No module named _sqlite3问题

    通过ngxtop实时监控webserver的访问情况 2014-04-03      0个评论    来源:通过ngxtop实时监控web server的访问情况   收藏    我要投稿 关于对ng ...

  9. pandas.DataFrame——pd数据框的简单认识、存csv文件

    接着前天的豆瓣书单信息爬取,这一篇文章看一下利用pandas完成对数据的存储. 回想一下我们当时在最后得到了六个列表:img_urls, titles, ratings, authors, detai ...

  10. simple-todo: 一个简易的 todo 程序 - django版

    今天无意间看到  simple-todo: 一个简易的 todo 程序 - web.py 中文教程 ,然后发现竟然有好多的版本 http://simple-is-better.com/news/tag ...

随机推荐

  1. java设计模式-----20、模板方法模式

    概念: Template Method模式也叫模板方法模式,是行为模式之一,它把具有特定步骤算法中的某些必要的处理委让给抽象方法,通过子类继承对抽象方法的不同实现改变整个算法的行为. 模板方法模式的应 ...

  2. HDU4280(KB11-G 最大流)

    Island Transport Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Other ...

  3. JS中深浅拷贝 函数封装代码

    一.了解 基本数据类型保存在栈内存中,按值访问,引用数据类型保存在堆内存中,按址访问. 二.浅拷贝 浅拷贝只是复制了指向某个对象的指针,而不是复制对象本身,新旧对象其实是同一内存地址的数据,修改其中一 ...

  4. org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException Line 47 in

    org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 47 in XML document from ...

  5. 【代码笔记】iOS-performSelectorOnMainThread

    代码: RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController : UIViewControl ...

  6. 【代码笔记】iOS-NSJSONSerializationDemo

    一,代码. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. ...

  7. Java 社区平台 - Sym 1.7.0 发布

    English | 中文 简介 Symphony([ˈsɪmfəni],n.交响乐)是一个现代化的社区平台,因为它: 实现了面向内容讨论的论坛 包含了面向用户分享.交友.游戏的社交网络 集成了聚合独立 ...

  8. [基础架构]PeopleSoft Web Server 重要文件说明

    我们都知道PeopleSoft是由几个不同的服务组成的,他们在PeopleSoft体系结构中扮演着自己的角色.这些服务具有不同的文件结构并包含重要的可执行文件和配置文件. 以下是Peoplesoft体 ...

  9. ArcGIS 中取出面上最大的Z值的坐标点

    def MaxZ(shape):        line = shape.getPart(0)     pnt = line.next()     maxValue = float("-in ...

  10. [Android] 锁定屏幕

    最近玩的比较欢脱,欠了好多东西没写.今天先简单地补一篇简单的内容.就是最近涉及到一个锁定Android设备屏幕的设计,大概就是通过一个按钮或者服务消息,来控制设备界面完全锁定,不能点击任何东西.感觉上 ...