SQLite 与 Python,Python项目中充分利用SQLite的综合指南

SQLite 是一种轻量级、无服务器、独立的关系数据库管理系统,由于其简单、高效且占用空间紧凑,在许多应用程序中常用。

本综合指南将探讨如何在 Python 项目中充分利用 SQLite 来深入创建、访问、修改和管理数据库信息。

在 Python 中设置 SQLite

要在 Python 中使用 SQLite,我们首先需要导入 sqlite3 模块。这是 Python 内置的:

import sqlite3

sqlite3 模块提供了从 Python 连接、创建 SQLite 数据库并与之交互所需的所有 API 和工具。

要连接到 SQLite 数据库(如果不存在则创建一个),请使用 sqlite3.connect() 方法:

import sqlite3
db = sqlite3.connect('database.db')

这将打开与数据库文件database.db的连接并返回代表数据库的连接对象。如果该文件不存在,SQLite 将自动创建它。

一旦我们完成与数据库的交互,关闭连接是一个很好的做法。这可以通过 close() 方法来完成:

db.close()

创建表

要在 SQLite 中创建表,我们必须执行 CREATE TABLE SQL 语句。这是通过首先从数据库连接获取游标对象来完成的,这使我们能够执行 SQL:

import sqlite3
db = sqlite3.connect('database.db')
cursor = db.cursor()

然后我们可以使用游标的execute()方法执行CREATE TABLE语句:

cursor.execute("""
  CREATE TABLE inventory (
    id integer PRIMARY KEY,
    name text NOT NULL,
    quantity integer,
    price real
  )
""")

这将创建一个包含 ID、名称、数量和价格列的库存表。请注意,我们定义了每列的数据类型。

执行 SQL 后,必须将更改提交到数据库。这会保留更改:

db.commit()

让我们将其放在一个函数中来封装表创建逻辑:

def create_table():
  db = sqlite3.connect('database.db')
  cursor = db.cursor()
  cursor.execute("""
    CREATE TABLE IF NOT EXISTS inventory (
      id integer PRIMARY KEY,
      name text NOT NULL,
      quantity integer,
      price real
    )
  """)
  db.commit()
  db.close()

我们使用 CREATE TABLE IF NOT EXISTS,因此如果表已经存在,尝试再次创建该表不会导致错误。

插入数据

要将数据插入表中,我们可以再次使用execute()方法执行SQL语句。SQLite 有一个 INSERT INTO 语句,允许插入新行:

INSERT INTO inventory VALUES (1, 'Bananas', 150, 1.49)

这将插入一个新行,id 为 1,名称为 Bananas,数量为 150,价格为 1.49。

虽然我们可以使用字符串格式插入数据,但更好的方法是使用可以安全地将值与查询分开的查询参数:

data = (2, 'Oranges', 200, 2.49)
cursor.execute("INSERT INTO inventory VALUES (?, ?, ?, ?)", data)

他们?充当值的占位符。这有助于防止 SQL 注入攻击。

我们可以编写一个函数来插入数据:

def insert_data(values):
  db = sqlite3.connect('database.db')
  cursor = db.cursor()
  cursor.execute("INSERT INTO inventory VALUES (?, ?, ?, ?)", values)
  db.commit()
  db.close()
# Usage:
insert_data((3, 'Apples', 75, 1.25))

这封装了插入逻辑,同时允许我们干净地将数据作为元组传递。

查看数据

我们可以使用 SELECT 语句从数据库中查询和获取数据。例如,要获取所有行:

SELECT * FROM inventory

我们可以执行此查询,然后使用cursor.fetchall()以元组形式检索结果集:

def get_all_data():
  db = sqlite3.connect('database.db')
  cursor = db.cursor()
  cursor.execute("SELECT * FROM inventory")
  rows = cursor.fetchall()
  db.close()
  return rows

这将以元组列表的形式返回完整的结果集,每个元组代表一行及其值。

我们可以将参数传递给 SELECT 查询来过滤结果:

def get_by_name(name):
  db = sqlite3.connect('database.db')
  cursor = db.cursor()
  cursor.execute("SELECT * FROM inventory WHERE name=?", (name,))
  row = cursor.fetchone()  
  db.close()
  return row

这允许我们按名称检索特定行。cursor.fetchone() 仅返回第一个结果。

更新数据

要修改现有数据,我们可以使用 UPDATE 语句:

UPDATE inventory SET quantity = 200 WHERE name = 'Bananas'

这会将香蕉的数量更新为 200。

我们可以编写一个函数来处理更新逻辑:

def update_data(new_quantity, name):
  db = sqlite3.connect('database.db')
  cursor = db.cursor()
  cursor.execute("UPDATE inventory SET quantity =? WHERE name=?",
                 (new_quantity, name))
  db.commit()
  db.close()
# Usage:  
update_data(350, 'Bananas')

与插入类似,这使用查询参数安全地传入值。

删除数据

可以使用 DELETE 语句删除行:

DELETE FROM inventory WHERE name = 'Oranges'

这将删除橙色行。

下面是我们如何实现删除功能:

def delete_data(name):
  db = sqlite3.connect('database.db')
  cursor = db.cursor()
  cursor.execute("DELETE FROM inventory WHERE name=?", (name,))
  db.commit()
  db.close()
# Usage:
delete_data('Oranges')

同样,使用查询参数可以避免漏洞并使代码更易于维护。

使用Sqlite3构建

首先,请在此处克隆存储库并按照教程进行操作。尽管这是初学者课程,但您必须对 SQL 有一点了解才能完成。

第一步是导入 sqlite3 模块:

import sqlite3

这使我们能够访问 Python 中的所有 SQLite 数据库功能。

创建表

接下来,定义 create_table() 函数来创建一个名为 store 的表,其中包含项目、数量和价格列:

def create_table():
  new_data = sqlite3.connect('data_base1')
  change = new_data.cursor()
  change.execute("CREATE TABLE IF NOT EXISTS store (item TEXT, quantity INTEGER, price REAL)")
  new_data.commit()
  new_data.close()

分解一下:

  • sqlite3.connect() 打开到数据库文件的连接。

  • new_data.cursor() 获取一个游标对象来执行SQL。

  • execute() 运行 CREATE TABLE 查询。

  • commit() 保存更改。

  • close() 关闭连接。

插入数据

item() 函数处理将数据插入表中:

def item(item, quantity, price):
  new_data = sqlite3.connect('data_base1')
  change = new_data.cursor()
  change.execute("INSERT INTO store VALUES(?,?,?)", (item, quantity, price))
  new_data.commit()
  new_data.close()

它以项目、数量和价格作为参数。INSERT 查询使用占位符 ? 将这些值安全地插入到新行中。

查看数据

为了查询数据,定义了view()函数:

def view():
  new_data = sqlite3.connect('data_base1')
  change = new_data.cursor()
  change.execute("SELECT * FROM store")
  rows = change.fetchall()
  change.close()
  return rows

它使用 SELECT * 选择所有行,使用 fetchall() 获取结果,然后返回它们。

删除数据

要按项目名称删除行,请使用delete()函数:

def delete(item):
  new_data = sqlite3.connect('data_base1')
  change = new_data.cursor()
  change.execute("DELETE FROM store WHERE item =?", (item,))  
  new_data.commit()
  new_data.close()

WHERE 子句通过项目名称标识要删除的行。

更新数据

最后,update() 可以修改给定商品的数量和价格:

def update(quantity, price, item):
  new_data = sqlite3.connect('data_base1')
  change = new_data.cursor()
  change.execute("UPDATE store SET quantity =?, price =? WHERE item=?",
                (quantity, price, item))
  new_data.commit()
  new_data.close()

SET 子句指定要更新的列,WHERE 标识行。

包起来

总之,在 Python 中使用 SQLite 数据库的关键步骤是:

  1. 将 sqlite3 模块导入到您的项目中。

  2. 使用 sqlite3.connect() 创建数据库连接。

  3. 从连接中获取游标来执行SQL语句。

  4. 构造 SQL 查询并使用游标来执行它们。

  5. 对于插入、更新和删除 - 提交更改以保留它们。

  6. 对于查询,使用cursor.fetchone() 或cursor.fetchall() 来检索结果。

  7. 完成后关闭数据库连接。

  8. 使用查询参数而不是连接值来避免 SQL 注入。

  9. 将数据库逻辑和查询封装在函数中以实现可重用。

有了这些概念,您就可以利用 SQLite 和 Python 的强大功能构建强大的应用程序。SQLite3 模块和 SQL 使您可以完全控制创建、修改和查询数据库信息。

SQLite 支持更高级的功能,如事务、隔离级别、备份和加密。请务必参阅官方 SQLite 文档以利用完整功能。

我希望这份综合指南能让您全面了解如何将 SQLite 集成到您的 Python 项目中!如果您还有其他问题,请告诉我。

我希望您喜欢阅读本指南,并有动力开始您的 Python 编程之旅。

如果你喜欢我的工作并且想帮助我继续删除这样的内容,请给我买杯 咖啡。


文章来源地址https://www.toymoban.com/diary/python/396.html

到此这篇关于SQLite 与 Python,Python项目中充分利用SQLite的综合指南的文章就介绍到这了,更多相关内容可以在右上角搜索或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

原文地址:https://www.toymoban.com/diary/python/396.html

如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用
使用Javascript编写一个鼠标交互式跟随特效和光标交互效果
上一篇 2023年10月14日 01:38
44个常见的React前端面试问题
下一篇 2023年10月15日 13:02

相关文章

  • 在Python中利用内置SQLite3模块进行数据库操作的完整指南

      在Python中,使用SQLite非常方便,Python内置了 SQLite3 模块,无需额外安装。SQLite 是一个轻量级的嵌入式数据库,适用于小型项目和单用户应用。以下是一个简单的示例,演示如何在 Python 中使用 SQLite,并提供了常见的查询、增加、修改和删除功能。 首先,确保你的 Python 安装

    2024年02月03日
    浏览(63)
  • 微调 LLaMA 2 模型:通过 QLoRA 充分利用单 GPU 效率 Meta LLaMA 2 微调过程综合指南

    科技巨头 Meta 于 2023 年 7 月 18 日发布了 LLaMA 2,这是他们最新版本的大型语言模型 (LLM),成为头条新闻。我相信 Llama2 在进一步推动人工智能技术方面取得了巨大飞跃,人们将关注私人领域未来对聊天机器人的微调将超过一般聊天机器人。1 这些尖端模型从 2023 年 1 月到 2023

    2024年02月10日
    浏览(49)
  • Python数据库编程全指南SQLite和MySQL实践

    本文分享自华为云社区《Python数据库编程全指南SQLite和MySQL实践》,作者: 柠檬味拥抱。 首先,我们需要安装Python的数据库驱动程序,以便与SQLite和MySQL进行交互。对于SQLite,Python自带了支持;而对于MySQL,我们需要安装额外的库,如 mysql-connector-python 。 SQLite是一种轻量级的

    2024年03月28日
    浏览(59)
  • SQLite数据库使用指南以及相关API编程

    SQLite是一种基于C语言开发的轻量级、快速、自包含、高可靠性和全功能的SQL数据库引擎。它是全球范围内使用最为广泛的数据库引擎,被嵌入到所有移动设备和大部分计算机中,并且伴随着无数日常使用的应用程序一起提供。 SQLite的文件格式具有稳定性、跨平台性以及向后

    2024年03月20日
    浏览(50)
  • .NET中轻松应用SQLite:零配置数据库引擎的完美指南

      SQLite 是一种轻量级的嵌入式数据库引擎,它在 .NET 中被广泛使用。SQLite 是一个零配置的数据库引擎,不需要服务器,可以直接在应用程序中使用。下面是一个简单的示例,演示如何在 .NET 中使用 SQLite,并提供了常见的查询、增加、修改和删除功能。 首先,你需要在项目中

    2024年02月02日
    浏览(58)
  • SQLite学习(十二)SQLite《社区流动人员系统》项目实战,数据库创建

    在前面的博客中,我们学习了 SQLite 的理论知识,从本篇博客开始,同学们将通过一个实战项目**《社区流动人员系统》**,对之前所学的知识做一次实战应用。 随着社会经济的迅速崛起,城市一体化的步伐加快,大量农民选择转移到城市中就业。形成了一股数量巨大的流动性

    2024年02月08日
    浏览(97)
  • SpringBoot项目整合MybatisPlus并使用SQLite作为数据库

    SQLite 是一个进程内库,它实现了 独立的、无服务器的、零配置 的事务性 SQL 数据库引擎。SQLite 没有单独的服务器进程。 SQLite直接读取和写入普通磁盘文件,就是一个完整的 SQL 数据库 , 包含多个表、索引、 触发器和视图包含在单个磁盘文件中 。 数据库文件格式是跨平台

    2024年01月21日
    浏览(49)
  • Python数据库模块(sqlite3,SQLite3)

    创建数据库:在控制台sqlite3 name sqlite3.connect(database [,timeout ,other optional arguments]) 打开数据库;如果指数据库存在则返回一个连接对象,如果不存在则会创建一个数据库; connection.cursor() 创建一个cursor; cursor.execute(sql) 执行一个sql语句,该语句可以被参数化; connection.execut

    2024年03月19日
    浏览(61)
  • Electron+vue3项目使用SQLite3数据库

    SQLite  是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的  SQL  数据库引擎。它是一个零配置的数据库,这意味着与其他数据库不一样,我们不需要在系统中配置。 就像其他数据库, SQLite  引擎不是一个独立的进程,可以按应用程序需求进行静态或

    2024年02月13日
    浏览(54)
  • 基于Qt数据库项目实现(Sqlite3为例)|考查数据库、表格(QTableView 显示)(进阶)

    01 数据库表格(QTableView 显示) 本小节设计一个生活中的例子,使用数据库修改/查询员工的编号、姓名、年龄、性别与照片信息。 本例将数据库的内容显示到 QTableView 上。如果只是简单的显示数据库的内容到QTableView 上,可以使用下面的方法,此方法 QTableView 上可以看到

    2024年02月20日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包