python数据库操作sqlite_Python3操作SQLite数据库
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数据库相关推荐
- python操作内置Sqlite数据库
转载自:http://www.cnblogs.com/yuxc/archive/2011/08/18/2143606.html 简单的介绍 SQLite数据库是一款非常小巧的嵌入式开源数据库软件,也就 ...
- python实现用户登陆(sqlite数据库存储用户信息)
目录 创建数据库数据库管理简单登陆 有些地方还未完善. 创建数据库 import sqlite3 #建一个数据库 def create_sql():sql = sqlite3.connect(&quo ...
- android数据库isnull,Android中SQLite数据库知识点总结
SQLite 数据库简介 SQLite 是一个轻量级数据库,它是D. Richard Hipp建立的公有领域项目,在2000年发布了第一个版本.它的设计目标是嵌入式的,而且占用资源非常低,在内存中只需 ...
- ocbase 数据库 蚂蚁_iOS - OC SQLite 数据库存储
前言 采用 SQLite 数据库来存储数据.SQLite 作为一中小型数据库,应用 iOS 中,跟前三种保存方式相比,相对比较复杂一些. 注意:写入数据库,字符串可以采用 char 方式,而从数据库中 ...
- android 数据库的种类,Android SQLite数据库
SQLite是一个开源SQL数据库,用于将数据存储到设备上的文本文件中.Android带有内置的SQLite数据库实现. SQLite支持所有关系数据库功能.为了访问此数据库,您不需要为它建立任何类型 ...
- Sql Server数据库数据导入到SQLite数据库中
背景:Sql Serve数据库中有个表格A,想把数据导入到SQLite数据库中 工具下载地址:点击打开链接 用法: 原作者地址及下载地址:点击打开链接
- 一个可以编辑sqlite数据库的 数据库编辑小工具 sqlite数据库 替换字段,sql替换数据库中某个字段的所有值
一个可以编辑sqlite数据库的 数据库编辑小工具,由于showdoc是不支持mysql数据库的,而我们需要去修改部分数据的时候需要用到sqlite数据库工具,因此这里推荐这个轻量工具: DB.Bro ...
- do与mysql数据类型对照_dophon-db: dophon框架的数据库模块,支持mysql,sqlite数据库,带有orm持久化功能与链式操作实例,贴近逻辑习惯,支持mysql多数据源配置...
dophon-db 项目介绍 dophon框架的数据库模块,也可单独作为一个与数据库模块交互的部件 支持mysql数据库连接 支持orm形式的数据操作 如有疑问请发送邮件联系作者:ealohu@163 ...
- python写数据库校验_python 验证 sqlite数据库隔离级别
sqlite3支持三种数据库锁级别,也叫隔离级别.下面代码中我们对数据库中task表进行更新,然后由另一个线程读取这个表的数据 import logging import sqlite3 import ...
最新文章
- 用.net中的socket实现文件传输
- 比PCA更好用的监督排序—LDA分析、作图及添加置信-ggord
- 手动安装K8s第三节:etcd集群部署
- 专栏 | 基于 Jupyter 的特征工程手册:数据预处理(二)
- 关于鸿蒙系统报告,华为鸿蒙操作系统研究报告:全景解构(21页)
- mvc identity连接mysql_asp.net MVC5,如何使用mysql数据库,使用MVC框架中自带的identity用户验证体系...
- 文件标识符必须为双精度类型的整数值标量_数据类型
- 【重磅资料】ArchSummit全球架构师峰会·2019华为云技术专场资料下载
- html5详细的中文手册,Web前端
- mysql 协议的processInfo命令包及解析
- POJ P1185 炮兵阵地 【状压dp】
- 优先级调度算法和高响应比优先调度算法
- [育强飞]自动刷屏器_育强飞_新浪博客
- 移动端获取手机网络信息
- 使用python爬取图片(爬取百度图片为例)
- IE6 Peekaboo(躲躲猫) Bug
- VUE2中provide 和 inject用法,以及怎么做响应式数据?
- 基本的Dos命令以及Windows常用命令
- android校准电池,安卓手机电量校准教程
- Flutter学习笔记 —— 完成一个简单的新闻展示页
热门文章
- 负载均衡策略_策略路由在多线出口分流和负载均衡中的精妙应用
- 多服务器认证协议,轻量级的多服务器认证协议及其应用的研究
- 印花对花不准(错花)形态及成因
- aver函数C语言怎么用,C语言函数使用
- linux进程fd数量,linux – 文件描述符的数量:/ proc / sys / fs / file-nr和/ proc / $pid / fd之间有什么不同?...
- 1.[精通Hibernate笔记]Hibernate简介
- zabbix-自定义键值监控网卡IN、OUT流量
- Mysql 解决left join 数据重复的问题
- Cisco小型局域网配置实验
- [轉]解决Windows XP下缩略图显示模式下文件夹没有名称的方法