乐趣区

关于python:Python自动化操作sqlite数据库

你好,我是悦创。

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

【多选题】小练习

数据库反对哪些操作?

  • [x] 查问数据
  • [x] 新增数据
  • [x] 更新数据
  • [x] 删除数据

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

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

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

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

:::

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

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

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

办法一:QQ

办法二:微信:Jiabcdefh

:::

退出移动版