Python3操作SQLite数据库

SQLite

SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月。 至2019年已经有19个年头,SQLite也迎来了一个版本 SQLite 3已经发布。[摘自SQLite百度百科]

功能特性

ACID事务

零配置 – 无需安装和管理配置

支持数据库大小至2TB

比一些流行的数据库在大部分普通数据库操作要快

独立: 没有额外依赖

支持多种开发语言,C, C++, PHP, Perl, Java, C#,Python, Ruby等

数据类型

Typelessness(无类型)

支持常用的数据库类型

使用Python3操作SQLite

python2.5以后的安装包已经自带SQLite3的软件包了,所以直接导入使用即可。

import sqlite3

第一步:连接数据库(如果数据库不存在就会创建新的数据库)

# 可以指定创建数据库的路径,比如可以写成sqlite3.connect(r"E:\DEMO.db")

con = sqlite3.connect("DEMO.db")

第二步:创建游标

cur = con.cursor()

第三步:CURD操作

(一) 创建表

sql = "CREATE TABLE IF NOT EXISTS test(id INTEGER PRIMARY KEY,name TEXT,age INTEGER)"

cur.execute(sql)

创建完数据库和表后的结构示意图:

(二) 添加数据(需要提交)

# ①:添加单条数据

data = "1,'Desire',5"

cur.execute('INSERT INTO test VALUES (%s)' % data)

# ②:添加单条数据

cur.execute("INSERT INTO test values(?,?,?)", (6, "zgq", 20))

# ③:添加多条数据

cur.executemany('INSERT INTO test VALUES (?,?,?)', [(3, 'name3', 19), (4, 'name4', 26)])

操作后的数据库如下图:

(三) 更新数据(需要提交)

# 方式一

cur.execute("UPDATE test SET name=? WHERE id=?", ("nihao", 1))

# 方式二

cur.execute("UPDATE test SET name='haha' WHERE id=3")

操作后的数据库如下图:

(四) 删除数据(需要提交)

# 方式一

cur.execute("DELETE FROM test WHERE id=?", (1,))

# 方式二

cur.execute("DELETE FROM test WHERE id=3")

操作后的数据库如下图:

(五) 查询数据

数据库中的数据如下:

1、查询所有数据

cur.execute("select * from Test")

print(cur.fetchall())

结果如下:

2、查询第一条数据

cur.execute("select * from Test")

print(cur.fetchone())

结果如下:

3、查询多条数据

print(cur.fetchmany(3))

结果如下:

第四步:事务的提交和回滚

提交

con.commit()

回滚

con.rollback()

第五步:断开会话连接,释放资源

# 关闭游标

cur.close()

# 断开数据库连接

con.close()

关于SQLite数据类型的Typelessness(无类型)

创建一个无类型的表(创建表的SQL语句字段不加类型即可)

sql = "CREATE TABLE IF NOT EXISTS user(clo_1,clo_2,clo_3)"

cur.execute(sql)

创建成功后的结构:

添加数据的时候就可以添加任意类型的数据(没有限制)

sql = 'INSERT INTO user VALUES (?,?,?)'

data = [(9, 'name3', 19), ('name4', 26, "nihao"), ('nihao', 3, 2.89)]

cur.executemany(sql, data)

con.commit()

添加成功后的表内容:

-----------------------------------------------------------------------------

*以上便是SQLite在Python中简单的操作,查看表结构可以用Navicat for SQLite可视化工具

python数据库操作sqlite_Python3操作SQLite数据库相关推荐

  1. python操作内置Sqlite数据库

    转载自:http://www.cnblogs.com/yuxc/archive/2011/08/18/2143606.html 简单的介绍 SQLite数据库是一款非常小巧的嵌入式开源数据库软件,也就 ...

  2. python实现用户登陆(sqlite数据库存储用户信息)

    目录 创建数据库数据库管理简单登陆 有些地方还未完善. 创建数据库 import sqlite3 #建一个数据库 def create_sql():sql = sqlite3.connect(&quo ...

  3. android数据库isnull,Android中SQLite数据库知识点总结

    SQLite 数据库简介 SQLite 是一个轻量级数据库,它是D. Richard Hipp建立的公有领域项目,在2000年发布了第一个版本.它的设计目标是嵌入式的,而且占用资源非常低,在内存中只需 ...

  4. ocbase 数据库 蚂蚁_iOS - OC SQLite 数据库存储

    前言 采用 SQLite 数据库来存储数据.SQLite 作为一中小型数据库,应用 iOS 中,跟前三种保存方式相比,相对比较复杂一些. 注意:写入数据库,字符串可以采用 char 方式,而从数据库中 ...

  5. android 数据库的种类,Android SQLite数据库

    SQLite是一个开源SQL数据库,用于将数据存储到设备上的文本文件中.Android带有内置的SQLite数据库实现. SQLite支持所有关系数据库功能.为了访问此数据库,您不需要为它建立任何类型 ...

  6. Sql Server数据库数据导入到SQLite数据库中

    背景:Sql Serve数据库中有个表格A,想把数据导入到SQLite数据库中 工具下载地址:点击打开链接 用法: 原作者地址及下载地址:点击打开链接

  7. 一个可以编辑sqlite数据库的 数据库编辑小工具 sqlite数据库 替换字段,sql替换数据库中某个字段的所有值

    一个可以编辑sqlite数据库的 数据库编辑小工具,由于showdoc是不支持mysql数据库的,而我们需要去修改部分数据的时候需要用到sqlite数据库工具,因此这里推荐这个轻量工具: DB.Bro ...

  8. do与mysql数据类型对照_dophon-db: dophon框架的数据库模块,支持mysql,sqlite数据库,带有orm持久化功能与链式操作实例,贴近逻辑习惯,支持mysql多数据源配置...

    dophon-db 项目介绍 dophon框架的数据库模块,也可单独作为一个与数据库模块交互的部件 支持mysql数据库连接 支持orm形式的数据操作 如有疑问请发送邮件联系作者:ealohu@163 ...

  9. python写数据库校验_python 验证 sqlite数据库隔离级别

    sqlite3支持三种数据库锁级别,也叫隔离级别.下面代码中我们对数据库中task表进行更新,然后由另一个线程读取这个表的数据 import logging import sqlite3 import ...

最新文章

  1. 用.net中的socket实现文件传输
  2. 比PCA更好用的监督排序—LDA分析、作图及添加置信-ggord
  3. 手动安装K8s第三节:etcd集群部署
  4. 专栏 | 基于 Jupyter 的特征工程手册:数据预处理(二)
  5. 关于鸿蒙系统报告,华为鸿蒙操作系统研究报告:全景解构(21页)
  6. mvc identity连接mysql_asp.net MVC5,如何使用mysql数据库,使用MVC框架中自带的identity用户验证体系...
  7. 文件标识符必须为双精度类型的整数值标量_数据类型
  8. 【重磅资料】ArchSummit全球架构师峰会·2019华为云技术专场资料下载
  9. html5详细的中文手册,Web前端
  10. mysql 协议的processInfo命令包及解析
  11. POJ P1185 炮兵阵地 【状压dp】
  12. 优先级调度算法和高响应比优先调度算法
  13. [育强飞]自动刷屏器_育强飞_新浪博客
  14. 移动端获取手机网络信息
  15. 使用python爬取图片(爬取百度图片为例)
  16. IE6 Peekaboo(躲躲猫) Bug
  17. VUE2中provide 和 inject用法,以及怎么做响应式数据?
  18. 基本的Dos命令以及Windows常用命令
  19. android校准电池,安卓手机电量校准教程
  20. Flutter学习笔记 —— 完成一个简单的新闻展示页

热门文章

  1. 负载均衡策略_策略路由在多线出口分流和负载均衡中的精妙应用
  2. 多服务器认证协议,轻量级的多服务器认证协议及其应用的研究
  3. 印花对花不准(错花)形态及成因
  4. aver函数C语言怎么用,C语言函数使用
  5. linux进程fd数量,linux – 文件描述符的数量:/ proc / sys / fs / file-nr和/ proc / $pid / fd之间有什么不同?...
  6. 1.[精通Hibernate笔记]Hibernate简介
  7. zabbix-自定义键值监控网卡IN、OUT流量
  8. Mysql 解决left join 数据重复的问题
  9. Cisco小型局域网配置实验
  10. [轉]解决Windows XP下缩略图显示模式下文件夹没有名称的方法