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():返回结果中各列的名字,可以用这些名字访问属性

转载于:https://www.cnblogs.com/tccbj/p/8405681.html

Python2.7-sqlite3相关推荐

  1. python2.7安装sqlite3模块

    转载自:https://riverdba.github.io/2017/08/29/sqlite3-install-for-python/ 摘要:使用sqlmap时遇到一个问题,需要给python安装 ...

  2. Python2.5.4移植到arm-linux

    1       移植需求 需求:在Arm9上运行python2.5.4. ARM Target环境: S3C2410A & arm-linux-2.4.18,和 AT91SAM9261 &am ...

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

    利用ngxtop实时监控nginx的访问情况 关于对nginx web server的实时访问的实时监控问题,我很久之前就想实现的,现在虽有nginx自带的status扩展,但那是全局的,无法细分到v ...

  4. SQLite 版本引发的 Python 程序调用问题

    问题 在跑 OpenStack functional 功能测试的时候有两个用例过不去. nova.tests.functional.db.test_resource_provider.Resource ...

  5. ImportError: No module named _sqlite3 报错解决方法

    报错如下错误: >>> import sqlite3 Traceback (most recent call last): File "<stdin>" ...

  6. 如何安装ipython notebook_IPython notebook安装指导

    1.环境准备 yum -y install sqlite-devel #在安装Python之前执行,ipython notebook依赖sqlite执行 pip install ipython pip ...

  7. IPython notebook安装指导

    2019独角兽企业重金招聘Python工程师标准>>> 1.环境准备 yum -y install sqlite-devel #在安装Python之前执行,ipython noteb ...

  8. Django入门(一)

    跟书<python编程:从入门到实践>,学习用Django编写名为"学习笔记"的Web应用程序. 建立项目 项目路径:learning_log 安装python3.7: ...

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

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

  10. OPPO 便签导出和转移

    本人本次的环境: OPPO 手机一个,魅族手机一个: 软件:OPPO自带便签,google下载的便签(以后就用这个便签了,导入和导出很方便) 电脑安装软件:python2,sqlite3 步骤: 1. ...

最新文章

  1. 进程(process)和线程
  2. GridControl详解(三)列数据的格式设置
  3. Request.Params用法
  4. 【MATLAB统计分析与应用100例】案例007:matlab数据的极差归一化变换
  5. 2345王牌浏览器网页加载慢怎么办 网页加载慢解决
  6. String Primitive和String Object
  7. 【小白问题】appendTo()
  8. MySQL导入数据出错
  9. win7系统激活(GPT分区)
  10. 安卓手机root推荐,导出安卓分区镜像
  11. ubuntu 安装gnome3
  12. 5分钟了解英文SEO做外链的正确姿势
  13. 商业智能BI的前景如何?看完这篇文章你就明白了
  14. 微信公众号数据2019_全国公众号总排名2019,全国微信公众号排名
  15. LEAM(生活/生命体验算法模型)
  16. 淘宝新品补单平台怎么样才能为你的产品精准打标?大神导航,一个神奇的网站,从此开启大神之路!
  17. 微软修补Windows零日漏洞,该漏洞允许在Windows计算机上远程执行
  18. c语言程序设计入门教程视频教学
  19. Modern love 年度最暖心美剧
  20. 基于树莓派语音合成小白避坑

热门文章

  1. ReportViewer教程(12)-按组折叠
  2. 支持向量机(SVM)推导
  3. JDK 8 新特性- 学习中
  4. 常用的分隔符有哪三种_Node.js系列四 - 常用的内置模块
  5. PCA和线性回归之间的关系如何?
  6. 【蚁剑的安装与使用+例题实战】【CTF】webshell
  7. Matlab--三种工具绘制errorbar图
  8. java timeout超时不抛异常_springCloud 请求超时解决方案 java.net.SocketTimeOut Exception: Read time out 异常解决...
  9. java获取cpu核数_vn.py社区精选12 - 策略参数优化,你需要懂得压榨CPU!
  10. 电视盒安装php,全志a20安卓电视盒子安装可道云kodexplorer服务-编译安装php7.3+nginx...