sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块

SQLite 是一个C语言库,它可以提供一种轻量级的基于磁盘的数据库,这种数据库不需要独立的服务器进程,也允许需要使用一种非标准的 SQL 查询语言来访问它。一些应用程序可以使用 SQLite 作为内部数据存储。可以用它来创建一个应用程序原型,然后再迁移到更大的数据库,比如 PostgreSQL 或 Oracle。

参见

https://github.com/ghaering/pysqlite

pysqlite的主页 -- sqlite3 在外部使用 “pysqlite” 名字进行开发。

https://www.sqlite.org

SQLite的主页;它的文档详细描述了它所支持的 SQL 方言的语法和可用的数据类型。

https://www.w3schools.com/sql/

学习 SQL 语法的教程、参考和例子。

例子

创建一个text.db数据库,然后创建和插入,定义查找方法,最后使用assert进行测试。

  1. import os, sqlite3
  2. # 当前脚本执行的目录名称。os.path是一个操作路径的模块
  3. print(os.path.dirname(__file__))
  4. # 连接成一个路径
  5. db_file = os.path.join(os.path.dirname(__file__), 'test.db')
  6. # 判断当前目录是否存在这个文件,如果存在则移除。直接删除了,不会到回收站。
  7. if os.path.isfile(db_file):
  8. os.remove(db_file)
  9.  
  10. # 连接或创建数据库
  11. conn = sqlite3.connect(db_file)
  12. # 创建操作数据库的光标对象
  13. cursor = conn.cursor()
  14. cursor.execute('create table user(id varchar(20) primary key, name varchar(20), score int)')
  15. cursor.execute(r'insert into user values("A-001", "Adam", 95)')
  16. cursor.execute(r"insert into user values ('A-002', 'Bart', 62)")
  17. cursor.execute(r"insert into user values ('A-003', 'Lisa', 78)")
  18. conn.commit()
  19. cursor.close()
  20. conn.close()
  21.  
  22. def get_score_in(low, high):
  23. try:
  24. conn = sqlite3.connect(db_file)
  25. cursor = conn.cursor()
  26. cursor.execute('select name from user where score between ? and ? order by score asc', (low, high) )
  27. result = cursor.fetchall()
  28. # 使用list comprehension
  29. return [ item[0] for item in result]
  30. except Exception as e:
  31. print("Error:" , e)
  32. return []
  33. finally:
  34. cursor.close()
  35. conn.close()
  36.  
  37. assert get_score_in(80, 95) == ['Adam'], get_score_in(80, 95)
  38. assert get_score_in(60, 80) == ['Bart', 'Lisa'], get_score_in(60, 80)
  39. assert get_score_in(60, 100) == ['Bart', 'Lisa', 'Adam'], get_score_in(60, 100)
  40.  
  41. print("Pass")

Python: sqlite3模块的更多相关文章

  1. python sqlite3 数据库操作

    python sqlite3 数据库操作 SQLite3是python的内置模块,是一款非常小巧的嵌入式开源数据库软件. 1. 导入Python SQLite数据库模块 import sqlite3 ...

  2. Python 3.6.0的sqlite3模块无法执行VACUUM语句

    Python 3.6.0的sqlite3模块存在一个bug(见issue 29003),无法执行VACUUM语句. 一执行就出现异常: Traceback (most recent call last ...

  3. 吴裕雄--python学习笔记:sqlite3 模块

    1 sqlite3.connect(database [,timeout ,other optional arguments]) 该 API 打开一个到 SQLite 数据库文件 database 的 ...

  4. Python之sqlite3模块

    python自带有sqlite3模块,该模块可以方便我们操作sqlite数据库,下面一起跟随示例了解sqlite3模块的具体用法. import sqlite3 # 连接数据库 connection ...

  5. python用sqlite3模块操作sqlite数据库-乾颐堂

    SQLite是一个包含在C库中的轻量级数据库.它并不需要独立的维护进程,并且允许使用非标准变体(nonstandard variant)的SQL查询语句来访问数据库. 一些应用可是使用SQLite保存 ...

  6. python常用模块collections os random sys

    Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句. 模块让你能够有逻辑地组织你的 Python 代码段. 把相关的代码 ...

  7. (转)python collections模块详解

    python collections模块详解 原文:http://www.cnblogs.com/dahu-daqing/p/7040490.html 1.模块简介 collections包含了一些特 ...

  8. Python标准模块--threading

    1 模块简介 threading模块在Python1.5.2中首次引入,是低级thread模块的一个增强版.threading模块让线程使用起来更加容易,允许程序同一时间运行多个操作. 不过请注意,P ...

  9. Python的模块引用和查找路径

    模块间相互独立相互引用是任何一种编程语言的基础能力.对于“模块”这个词在各种编程语言中或许是不同的,但我们可以简单认为一个程序文件是一个模块,文件里包含了类或者方法的定义.对于编译型的语言,比如C#中 ...

随机推荐

  1. Note 2: Complain

    Note 2: Complain 1. The collection of Linkun's [1]: 1.1suck If someone says that something sucks, th ...

  2. 在Ubuntu里搭建spark环境

    注意:1.搭建环境:Ubuntu64位,Linux(也有Windows的,我还没空试)       2.一般的配置jdk.Scala等的路径环境是在/etc/profile里配置的,我自己搭建的时候发 ...

  3. Android Stadio导入Android工程项目,只有Edit Configurations的解决办法

    这几天导入老的Android工程项目,导入后,也不发红也不报错,但是Run这一项没有可运行的App,就只有一个Edit Configurations.经过查询后,发现运行一下Sync Project ...

  4. 剑指offer39:平衡二叉树

    1 题目描述 输入一棵二叉树,判断该二叉树是否是平衡二叉树. 2 思路和方法 平衡二叉树,又被称为AVL树(有别于AVL算法),且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1 ...

  5. LC 494. Target Sum

    问题描述 You are given a list of non-negative integers, a1, a2, ..., an, and a target, S. Now you have 2 ...

  6. Centos7搭建在线yum源

    1: 首先关闭防护墙或者设置规则通过且关闭selinux Systemctl diablefirewalld  永久关闭防火墙 vim/etc/sysconfig/selinux 并修改SELINUX ...

  7. 牛客 P21336 和与或 (数位dp)

    大意: 给定数组$R$, 求有多少个数组$A$, 满足$0\le A_i \le R_i$且$A_0+...+A_{N-1}=A_0\space or ...\space or \space A_{N ...

  8. 常用javascript内置对象——String对象

    创建 String 对象的语法: 1:new String(s); :2:String(s); :3:直接赋值 String中属性 String中方法 <script> window.on ...

  9. Javascript中的事件二

    <!------------------示例代码一---------------------><!DOCTYPE html PUBLIC "-//W3C//DTD XHTM ...

  10. .net core默认不支持gb2312

    采集数据时,乱码,之前遇到过这个情况,于是老办法: 果断使用Encoding.GetEncoding(“GB2312”),抛异常.搜了下,是因为.net core默认不支持gb2312 所以,两个办法 ...