你好,我是悦创。

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

1. 什么是数据库

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

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

2. 有哪些数据库

2.1 数据库类型

大型数据库:甲骨文Oracle。

分布式数据库:HBase。

中型数据库:SqlServer、Mysql、MariaDB、PostgreSQL、Redis等。

小型数据库:Sqlite、 Access 。

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. vue项目Eslint和prettier结合使用

    一.eslint介绍--代码语法检查工具 Eslint是一个代码检查工具,用来检查你的代码语法是否符合指定的规范,ECMAScript标准 二.prettier插件--代码格式化工具 prettier ...

  2. C# 8.0 中的 Disposable ref structs(可处置的 ref 结构)

    官方文档中的解释:   用 ref 修饰符声明的 struct 可能无法实现任何接口,因此无法实现 IDisposable. 因此,要能够处理 ref struct,它必须有一个可访问的 void D ...

  3. 分清国内版FireFox和国际版FireFox

    FireFox现在成为越来越多人替代Chrome的选择.但与Chrome不同的是,FireFox无论桌面端还是移动端,都有着『国际』和『国内』版本的区分. 二.正确的下载地址 2.1国内版的混淆视听: ...

  4. ES6 学习笔记(四)基本类型Number

    1.数值 1.1 .JavaScript数值的特点 不区分整数值和浮点数值. 所有数值均用浮点数值表示. 采用IEEE-754标准定义的64位浮点数格式表示. 整数在实际操作时(如数组索引),则是基于 ...

  5. 介绍一个jmeter录制脚本谷歌插件 —— metersphere-chrome-plugin

    该插件可将用户在浏览器操作时的 HTTP 请求记录下来并生成 JMX 文件(JMeter 脚本文件). 1. 插件解压 插件下载链接: https://pan.baidu.com/s/14nGb_s9 ...

  6. vulnhub靶场之Beelzebub

    准备: 攻击机:虚拟机kali.本机win10. 靶机:Beelzebub: 1,网段地址我这里设置的桥接,所以与本机电脑在同一网段,下载地址:https://download.vulnhub.com ...

  7. WPF之XAML

    XAML是WPF技术中专门用于设计UI的语言.优点在于: (1)XAML可以设计出专业的UI和动画--好用. (2)简单易懂,易学. (3)设计师可以直接参与软件设计,随时沟通,无须二次转化--高效. ...

  8. Java注解与原理分析

    目录 一.注解基础 二.注解原理 三.常用注解 1.JDK注解 2.Lombok注解 四.自定义注解 1.同步控制 2.类型引擎 五.参考源码 使用的太多,被忽略的理所当然: 一.注解基础 注解即标注 ...

  9. Python调用golang

    有些时候因为效率问题部分代码会 使用Python调用go的编译生成动态链接库go 代码示例//add.gopackage main import "C" //export Addf ...

  10. 简单的WebAssembly应用搭建

    1      WebAssembly简介 WebAssembly是一种新兴的Web技术,网上的资料并不是很多,简单的可以理解为让C/C++程序运行在浏览器上,官网上用四个词来描述该技术:高效.安全.开 ...