Python2.7-sqlite3
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的更多相关文章
- [原创] 更新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 ...
- python加载sqlite3报错:No module named _sqlite3
环境为Ubuntu16.04 Apache2.4 Python2.7.13 django 1.8 今天部署apache+django,经过各种折腾,好不容易配置完了,发现错误Apache的日志里有一项 ...
- 源码安装ipython,并在ipython中整合spark
一.安装ipython 下载ipython, https://pypi.python.org/packages/source/i/ipython/ipython-2.2.0.tar.gz#md5=b9 ...
- 利用ngxtop实时监控nginx的访问情况
关于对nginx web server的实时访问的实时监控问题,我很久之前就想实现的,现在虽有nginx自带的status扩展,但那是全局的,无法细分到vhost,并且提供的metric也很少,加之目 ...
- Python学习笔记总结(二)函数和模块
一.函数 函数的作用:可以计算出一个返回值,最大化代码重用,最小化代码冗余,流程的分解. 1.函数相关的语句和表达式 语句 例子 Calls myfunc(‘diege', ...
- ImportError: No module named _sqlite3 - 代码分享
ImportError: No module named _sqlite3 - 代码分享 ImportError: No module named _sqlite3 作者:86市场网 点击 ...
- 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 ...
- 通过ngxtop实时监控webserver的访问情况 / 解决ImportError: No module named _sqlite3问题
通过ngxtop实时监控webserver的访问情况 2014-04-03 0个评论 来源:通过ngxtop实时监控web server的访问情况 收藏 我要投稿 关于对ng ...
- pandas.DataFrame——pd数据框的简单认识、存csv文件
接着前天的豆瓣书单信息爬取,这一篇文章看一下利用pandas完成对数据的存储. 回想一下我们当时在最后得到了六个列表:img_urls, titles, ratings, authors, detai ...
- simple-todo: 一个简易的 todo 程序 - django版
今天无意间看到 simple-todo: 一个简易的 todo 程序 - web.py 中文教程 ,然后发现竟然有好多的版本 http://simple-is-better.com/news/tag ...
随机推荐
- Java - HashTable源码分析
java提高篇(二五)-----HashTable 在java中与有两个类都提供了一个多种用途的hashTable机制,他们都可以将可以key和value结合起来构成键值对通过put(key,valu ...
- Codeforces834A
A. The Useless Toy time limit per test:1 second memory limit per test:256 megabytes input:standard i ...
- POJ2533(KB12-N LIS)
Longest Ordered Subsequence Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 50827 Acc ...
- Python面试题都在这里了
转自武沛齐博客:http://www.cnblog.com/wupeiqi/ 第一部分 Python基础篇(80题) 为什么学习Python? 通过什么途径学习的Python? Python和Java ...
- 活字格Web应用平台学习笔记3-显示数据列表
活字格第二课的目标,用活字格创建一个简单的在线数据管理系统. 看下设计界面.刚开始跟着点,有点懵圈,到做完,回忆了一下,其实就是先建一张表,然后,把表和页面联系起来,即在页面中划出一些区域,和表的字段 ...
- Flutter 数据模型创建
build_runner的使用 1.在根目录运行 2.一次性创建.g.dart文件 使用build 此时目录内不能有.g.dart文件 3.watch是监听 有model类的文件创建 自动创建.g.d ...
- 从零自学Java-5.使用条件测试进行判断
1.使用if语句进行最基本的条件测试:2.测试一个值大于还是小于另一个值:3.测试两个值是否相等:4.使用与if语句对应的else语句:5.组合多个条件测试:6.使用switch语句进行复杂的条件测试 ...
- 使用 D: 盘作为 Windows VM 上的数据驱动器
如果应用程序需要使用 D 盘存储数据,请按照以下说明使用其他驱动器号作为临时磁盘. 切勿使用临时磁盘来存储需要保存的数据. 如果调整虚拟机大小或停止(解除分配)虚拟机,这可能会触发将虚拟机放置于新虚拟 ...
- 【转】Redis学习---哈希结构内存模型剖析
[原文]https://www.toutiao.com/i6594624365906625032/ 概述 在前文<Redis字符串类型内部编码剖析>之中已经剖析过 Redis最基本的 St ...
- [BZOJ 1135][POI2009]Lyz
[BZOJ 1135][POI2009]Lyz 题意 初始时滑冰俱乐部有 \(1\) 到 \(n\) 号的溜冰鞋各 \(k\) 双.已知 \(x\) 号脚的人可以穿 \(x\) 到 \(x+d\) 的 ...