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 ...
随机推荐
- HDU2859(KB12-Q DP)
Phalanx Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ...
- django 参考
1. 路由系统 https://www.cnblogs.com/maple-shaw/articles/9282718.html 2. 视图 https://www.cnblogs.com/maple ...
- pts/0代表什么意思?
在linux命令行中经常看到pts/0,这是什么意思呢??妈蛋!! 先说pts/0吧,man里面是这样说的:ptmx and pts - pseudo-terminal master and slav ...
- CentOS7上Python3.5安装
CentOS7上Python3.5安装 1.下载 https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz 2.上传到服务器 3. yum in ...
- iis7 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理
cmd 输入 C:\Windows\Microsoft.NET\Framework\V4.0.30319\aspnet_regiis -i
- Android系统执行Java jar程序 -- dalvik运行dex Java工程
本文仅针对纯java工程执行进行诠释,一般在PC平台作为jar包形式存在,在Android平台则以dex包形式存在. Java属于高级程序语言,Java程序需要运行在特定的虚拟机中,虚拟机将Java字 ...
- InteliiJ IDEA的安装配置与简单使用
小Alan前段时间一直在家里搬砖,已经很久没有接触技术了,从今天开始重拾技术,工欲善其事,必先利其器,以前在做Java开发的时候最常用的IDE就是Eclipse莫属了,不过随着岁月的流逝,在2016年 ...
- windows无法访问linux服务器
解决: 或者有效 iptables -A INPUT -p tcp --dport 8000 -j ACCEPT[root@localhost ~]# iptables -A OUTPUT -p tc ...
- selenium 校验文件下载成功
转自: http://www.seleniumeasy.com/selenium-tutorials/verify-file-after-downloading-using-webdriver-jav ...
- Node.js+Ajax实现物流小工具
半年过去了,好像什么也没干,好像什么也干了. 最近在网易云课堂上看到了这个课程,觉得很有意思,就跟着课程做了一遍,课程地址:http://study.163.com/course/courseMain ...