你好,我是悦创。

原文首发: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 的全部代码了。

【多选题】小练习

数据库支持哪些操作?

  • 查询数据
  • 新增数据
  • 更新数据
  • 删除数据

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

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

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

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

:::

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

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

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

方法一:QQ

方法二:微信:Jiabcdefh

:::

Python自动化操作sqlite数据库的更多相关文章

  1. Python 操作 SQLite 数据库

    写在之前 SQLite 是一个小型的关系型数据库,它最大的特点在于不需要单独的服务.零配置.我们在之前讲过的两个数据库,不管是 MySQL 还是 MongoDB,都需要我们安装.安装之后,然后运行起来 ...

  2. Python操作sqlite数据库小节

    学习了Python操作sqlite数据库,做一个小结,以备后用. import sqlite3import os# 进行数据库操作时,主要是参数如何传输try:# 链接数据库conn=sqlite3. ...

  3. Python操作SQLite数据库的方法详解

    Python操作SQLite数据库的方法详解 本文实例讲述了Python操作SQLite数据库的方法.分享给大家供大家参考,具体如下: SQLite简单介绍 SQLite数据库是一款非常小巧的嵌入式开 ...

  4. Qt 操作SQLite数据库

    项目中通常需要采用各种数据库(如 Qracle.SQL Server.MySQL等)来实现对数据的存储.查询等功能.下面讲解如何在 Qt 中操作 SQlite 数据库. 一.SQLite 介绍 Sql ...

  5. js -- 操作sqlite数据库

    最近看到一个使用js来操作sqlite数据库的,测试了一下,具体使用的是 js操作类: https://github.com/kripken/sql.js/(sqlite js 驱动) 异步请求:ht ...

  6. Java操作Sqlite数据库-jdbc连接

    Java操作Sqlite数据库步骤: 1. 导入Sqlite jdbc 本文使用sqlite-jdbc-3.7.2.jar,下载地址 http://pan.baidu.com/s/1kVHAGdD 2 ...

  7. 无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)

    1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name= ...

  8. EF6操作Sqlite数据库的项目兼容性问题

    vs2010无法正确打开2015创建的项目里面操作Sqlite数据库时使用EF6创建的edmx文件(会显示空白)   但是可以正常查询 vs2015无法正确打开2010创建的项目里面操作Sqlite数 ...

  9. EF操作sqlite数据库时的项目兼容性问题

    问题:vs2015打不开vs2010建的操作sqlite的实体数据模型edmx文件 原因: 当前电脑必须先安装:驱动库及sqlite的vs拓展 正常情况下安装驱动和拓展后,vs2015就应该可以正常打 ...

随机推荐

  1. 华为交换机VLAN常用命令

    划分vlan vlan 10 划分Vlan10 vlan batch 30 40 同时创建vlan30和40 dispaly vlan 查看vlan信息 int e0/0/1 进入某一个接口 port ...

  2. Docker | 自定义网络(网关、子网地址)

    了解 docker network 通过下面的命令来获取帮助 docker network --help Commands: connect Connect a container to a netw ...

  3. 在vue中的form表单中下拉框中的数据来自数据库查询到的数据

    文章目录 1.实现的效果: 2.前端html代码 3.js中的代码 4.后端的方法 1.实现的效果: 增加一个新的类型到数据库 2.前端html代码 需要注意的部分:prop后边是表单中的字段 v-m ...

  4. java 新特性之 Stream API

    强大的 Stream API 一.Stream API 的概述 Stream到底是什么呢? 是数据渠道,用于操作数据源(集合.数组等)所生成的元素序列. "集合讲的是数据,Stream讲的是 ...

  5. ElasticSearch之Windows中环境安装

    ElasticSearch 说明 本章,我们主要以在 Windows 中对ElasticSearch 安装进行介绍! 1. 下载 ElasticSearch 这里我们下载的版本为7.17.4为例进行介 ...

  6. Eureka Server 实现在线扩容

    Eureka Server 实现在线扩容 作者:Grey 原文地址: 博客园:Eureka Server 实现在线扩容 CSDN:Eureka Server 实现在线扩容 需求 Eureka 是 Sp ...

  7. 三、celery执行定时任务

    三.Celery执行定时任务 设定时间让celery执行一个 定时任务,product_task.py from celery_task import send_email from datetime ...

  8. Codeforces Round #811 (Div. 3)D. Color with Occurrences

    题目大意:给出一个文章t和n个字符串s1,s2...sn: 问能否用这n个字符串将整个文章覆盖: 思路:贪心(最小区间覆盖) 记录每个字符串能够覆盖的所有位置(起点,终点,编号) 排序后贪心的求出是否 ...

  9. 【题解】[ARC113C] String Invasion

    题面传送门 解决思路 题目大意是给你一个字符串 \(s\) ,定义一次操作为对于长度为 \(3\) 的一个子段,满足 \(s_i=s_{i+1}\ne s_{i+2}\),则可以将 \(s_{i+2} ...

  10. JDK 8 Stream 流 用 法

    import com.entity.Person;import org.junit.Test;import java.util.*;import java.util.function.Function ...