Python自动化操作sqlite数据库

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: Python自动化操作sqlite数据库

你好,我是悦创。

原文首发:https://bornforthis.cn/column/pyauto/

1. 什么是数据库

数据库是“按照数据结构来组织、存储和管理数据的仓库”,是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合。

数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合,可视为电子化的文件柜。

2. 有哪些数据库

2.1 数据库类型

大型数据库:甲骨文Oracle

分布式数据库:HBase

中型数据库:SqlServerMysqlMariaDBPostgreSQLRedis等。

小型数据库:SqliteAccess

2.2 如何选择

大集团:Oracle、HBase。

发展中公司:PostgreSQL、Mysql。

app 的临时数据库:Sqlite。

2.3 Sqlite

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

3. sqlite 创建表格

3.1 sqlitestudio 介绍

本节内容的目的,是教大家如何在非代码的情况下,创建 sqlite3 数据库文件和表格编辑操作。

既然不写代码,就肯定需要借助软件来操作。本节课对应的源码中,准备好了 windows、macos、linux 三个系统的 sqlitestudio 软件,如下图:

windows 使用 zip;macos 使用 dmg;linux 使用 tar.xz;

sqlitestudio 是一款绿色软件,安装你的操作系统所对应的 sqlitestudio 软件,然后执行,就可以得到启动界面。

3.2 新建 sqlite 数据库文件

点击左上角的数据库,选择添加数据库,则会弹框,让你选择某个数据库文件,或者创建一个新的 sqlite 文件

点击黄色的文件夹,是指打开某个存在的 sqlite 文件。

点击 绿色的+ ,是新建一个 sqlite 文件,并且你也需要指定存储的具体位置。

选择在三个 sqlitestudio 安装包旁边,新建一个名为 first.db 的文件,如下截图:

并且,文件也有对应的生成。

3.3 新增数据

回到 sqlitestudio 软件界面,打开刚新建的 first.db ,里面什么都没有,表格是空的,现在来新建一个表格。

鼠标右键点击 Tables,然后选择新建表格,在新出的界面中,写表格名、字段名和字段类型,如下图:

方法一:

方法二:


Table Name 表格名,输入具体名称。最上方框中的那个按钮,是增列字段的按钮,点击按钮弹出中间的字段信息,输入字段名、类型、大小等。

这里写了id title content author 四个字段信息,然后点击绿色的勾,保存表格即可。

保存了文件,重新刷新页面,就可以查看数据栏,如下:

点击绿色的+号,然后增加几条数据,方便我们下节课的代码练习。图中有三条。

sqlitestudio 也要保留,方便我们下节课,查看代码练习的数据变化结果。

4. Python 链接和操作 sqlite

4.1 链接和查询代码

Python 自身携带 sqlite 库,不需要额外安装,直接使用即可。导入代码:

import sqlite3

导入代码之后,将 first.db 文件,放到代码文件旁边。这里用的是 py,所以是把 py 和 first.db 文件放一起,不放一起就只能使用绝对路径。如下图:

然后使用 sqlite3 库,链接 first.db 文件,代码 firstdb = sqlite3.connect('first.db')

正常运行后,写查询语句,从数据库中读取全部数据,如下代码:

# 查询语句
query_sql = "select * from info"
for result in firstdb.execute(query_sql):
    print(result)

完整代码:

# -*- coding: utf-8 -*-
# @Time    : 2022/7/17 14:36
# @Author  : AI悦创
# @FileName: main.py
# @Software: PyCharm
# @Blog    :http://www.aiyc.top
# @公众号   :AI悦创
import sqlite3

firstdb = sqlite3.connect("first.db")

# 查询语句
query_sql = "select * from info"
for result in firstdb.execute(query_sql):
    print(result)
# firstdb.execute(): Executes an SQL statement./执行 SQL 语句。
print(list(firstdb.execute(query_sql)))

输出结构效果图:

这是最简单的查询语句。数据库都是支持查询、删除、增加、更新操作的。

4.2 删除数据操作

删除操作,将数据从数据库中移除,关键词 delete,先删除一条数据,如下代码:

# 删除特定数据
delete_sql = "delete from info where id = 1"

firstdb.execute(delete_sql)
firstdb.commit()

# 查询并输出
query_sql = "select * from info"
for result in firstdb.execute(query_sql):
    print(result)

运行结果如下图:

4.3 插入更多数据

增加的操作,关键词 add,使用 for 循环,先批量的增加一些数据:

# 插入数据
insert_sql = "insert into info(title, content, author) values ('第{}个标题', '随机的第{}个内容', '匿名')"
for i in range(10, 20):
    sql = insert_sql.format(i, i * 2)
    firstdb.execute(sql)
    firstdb.commit()

# 查询并输出
query_sql = "select * from info"
for result in firstdb.execute(query_sql):
    print(result)

for 循环,从 10 循环到 20,不含 20,然后全部执行 sql 语句和提交到数据库。最后查询全部数据,看下有没有增多,如下结果图:

4.4 更新数据操作

数据有增加,最后更新数据,关键词 update,做个条件更新,id 大于等于 4 的数据,设置 author 为“不匿名”,如下代码:

# 更新数据
update_sql = "update info set author = '不匿名' where id >= 4"
firstdb.execute(update_sql)

# 查询并输出
query_sql = "select * from info"
for result in firstdb.execute(query_sql):
    print(result)

最后的结果图如下:

以上就是 Python 操作 sqlite 的全部代码了。

【多选题】小练习

数据库支持哪些操作?

  • [x] 查询数据
  • [x] 新增数据
  • [x] 更新数据
  • [x] 删除数据
怎么批量更新数据呢?代码该如何编写呢?欢迎加我微信:Jiabcdefh,备注:进入自动化交流群。

该数据库是单数据库操作,不要打开多个,这样有可能会锁死。

欢迎关注我公众号:AI悦创,有更多更好玩的等你发现!

::: details 公众号:AI悦创【二维码】

:::

::: info AI悦创·编程一对一

AI悦创·推出辅导班啦,包括「Python 语言辅导班、C++ 辅导班、java 辅导班、算法/数据结构辅导班、少儿编程、pygame 游戏开发」,全部都是一对一教学:一对一辅导 + 一对一答疑 + 布置作业 + 项目实践等。当然,还有线下线上摄影课程、Photoshop、Premiere 一对一教学、QQ、微信在线,随时响应!微信:Jiabcdefh

C++ 信息奥赛题解,长期更新!长期招收一对一中小学信息奥赛集训,莆田、厦门地区有机会线下上门,其他地区线上。微信:Jiabcdefh

方法一:QQ

方法二:微信:Jiabcdefh

:::

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
10天前
|
数据采集 人工智能 程序员
避坑指南!细说Python自动化办公的5大缺点
Python如今变得愈发流行,不仅程序员,许多非专业人员也开始学习它,主要目的是提高工作效率而非成为专家。然而,Python自动化办公并非完美,存在一些缺点:首先,它仅支持Windows系统,这对Mac用户不太友好;其次,其功能虽强大但不够专业,大多功能一行代码即可完成;再者,代码包体积较大,约200MB;此外,技术门槛较低,难以形成职业优势;最后,相较于专业代码,它的启动速度较慢。即便如此,它依然比人工操作高效得多。如果能接受以上缺点,可参考《50讲·Python自动化办公》教程,快速掌握自动化办公技能。
53 29
|
10天前
|
安全 JavaScript 前端开发
自动化测试的魔法:如何用Python编写你的第一个测试脚本
【8月更文挑战第41天】在软件的世界里,质量是王道。而自动化测试,就像是维护这个王国的骑士,确保我们的软件产品坚不可摧。本文将引导你进入自动化测试的奇妙世界,教你如何使用Python这把强大的魔法杖,编写出能够守护你代码安全的第一道防护咒语。让我们一起开启这场魔法之旅吧!
|
6天前
|
运维 监控 Linux
自动化运维的魔法:如何用Python脚本简化日常任务
【9月更文挑战第13天】在数字化时代的浪潮中,自动化运维如同一股清流,为IT团队带来了效率和灵活性的双重提升。本文将深入探讨如何通过Python脚本实现日常运维任务的自动化,从而释放双手,让重复性工作变得轻松愉快。从环境搭建到实际案例分析,我们将一步步揭开自动化运维的神秘面纱,让你的运维之路更加顺畅。
|
14天前
|
测试技术 API Python
python在自动化测试中的经典例子
python在自动化测试中的经典例子
25 12
|
14天前
|
运维 监控 安全
python在自动化运维中的妙用分享
python在自动化运维中的妙用分享
31 8
|
12天前
|
运维 监控 API
自动化运维:使用Python脚本进行日常管理
【9月更文挑战第6天】在现代的IT环境中,自动化运维已成为提升效率、减少人为错误的关键。本文将介绍如何通过Python脚本简化日常的运维任务,包括批量配置管理和日志分析。我们将从基础语法讲起,逐步深入到脚本的实际应用,旨在为读者提供一套完整的解决方案,以实现运维工作的自动化和优化。
14 1
|
17天前
|
IDE 测试技术 持续交付
Python自动化测试与单元测试框架:提升代码质量与效率
【9月更文挑战第3天】随着软件行业的迅速发展,代码质量和开发效率变得至关重要。本文探讨了Python在自动化及单元测试中的应用,介绍了Selenium、Appium、pytest等自动化测试框架,以及Python标准库中的unittest单元测试框架。通过详细阐述各框架的特点与使用方法,本文旨在帮助开发者掌握编写高效测试用例的技巧,提升代码质量与开发效率。同时,文章还提出了制定测试计划、持续集成与测试等实践建议,助力项目成功。
42 5
|
2天前
|
存储 数据挖掘 测试技术
Python接口自动化中操作Excel文件的技术方法
通过上述方法和库,Python接口自动化中的Excel操作变得既简单又高效,有助于提升自动化测试的整体质量和效率。
10 0
|
6天前
|
敏捷开发 测试技术 持续交付
自动化测试之美:如何用Selenium和Python打造高效测试脚本
【9月更文挑战第13天】在软件开发的海洋中,自动化测试是那抹不可或缺的亮色。它不仅提升了测试效率,还保障了产品质量。本文将带你领略使用Selenium和Python构建自动化测试脚本的魅力所在,从环境的搭建到脚本的编写,再到问题的排查,每一步都是对软件质量把控的深刻理解和实践。让我们开始这段探索之旅,解锁自动化测试的秘密吧!
8 0
|
6天前
|
jenkins 测试技术 持续交付
自动化测试的高效之路:如何利用Python进行Web应用测试
【9月更文挑战第13天】在软件开发的快节奏中,自动化测试是确保质量和效率的关键。本文将引导你了解如何使用Python语言及其强大的测试框架来提升Web应用的测试效率。我们将一起探索编写简洁而强大的测试脚本的技巧,以及如何通过持续集成(CI)实现自动化测试流程。准备好让你的测试工作飞一般的感觉!