Python连接SQLite数据库操作实战指南从入门到精通

 更新时间:2023年11月12日 10:42:33   作者:涛哥聊Python  
在Python中使用SQLite进行数据库操作时,我们将深入研究SQLite数据库的创建、表格管理、数据插入、查询、更新和删除等关键主题,帮助你全面了解如何使用SQLite进行数据库操作

连接到SQLite数据库

SQLite是一种嵌入式数据库引擎,它允许在应用程序中创建和管理本地数据库文件。

Python提供了sqlite3模块,可用于连接到SQLite数据库。

import sqlite3
# 连接到数据库(如果不存在则会创建)
conn = sqlite3.connect('mydatabase.db')

上述代码创建了一个名为mydatabase.db的SQLite数据库文件(如果该文件不存在),并与该数据库建立连接。可以根据需要更改数据库文件的名称。

创建表格

在SQLite数据库中,数据以表格的形式存储。要创建表格,使用SQL语句。

以下是一个示例,创建一个名为"students"的表格:

# 创建一个名为"students"的表格
cursor = conn.cursor()
cursor.execute('''
    CREATE TABLE IF NOT EXISTS students (
        id INTEGER PRIMARY KEY,
        name TEXT NOT NULL,
        age INTEGER
    )
''')
conn.commit()

上述代码创建了一个包含id、name和age字段的"students"表格。cursor.execute()用于执行SQL语句,conn.commit()用于提交更改。

插入数据

要向表格中插入数据,使用INSERT INTO语句。

以下是一个插入数据的示例:

# 插入一名学生的信息
cursor.execute("INSERT INTO students (name, age) VALUES (?, ?)", ('Alice', 25))
conn.commit()

上述代码将一名名为Alice的学生信息插入到"students"表格中。

查询数据

使用SELECT语句,从表格中检索数据。

以下是一个查询数据的示例:

# 查询所有学生的信息
cursor.execute("SELECT * FROM students")
students = cursor.fetchall()

for student in students:
    print(student)

上述代码执行SELECT语句并将结果存储在students变量中,然后通过循环打印每个学生的信息。

更新和删除数据

更新数据,使用UPDATE语句;

删除数据,使用DELETE语句。

以下是更新和删除数据的示例:

# 更新学生信息
cursor.execute("UPDATE students SET age = ? WHERE name = ?", (26, 'Alice'))
conn.commit()

# 删除学生信息
cursor.execute("DELETE FROM students WHERE name = ?", ('Alice',))
conn.commit()

上述代码分别将学生Alice的年龄更新为26岁,并从表格中删除了名为Alice的记录。

异常处理

在进行数据库操作时,务必使用异常处理来处理可能发生的错误。

例如,如果数据库文件无法创建或打开,或者SQL语句执行失败,都应该处理这些异常情况。

try:
    conn = sqlite3.connect('mydatabase.db')
    # 数据库操作
except sqlite3.Error as e:
    print("SQLite error:", e)
finally:
    conn.close()

数据库事务

SQLite支持事务,这是一组数据库操作的单元,要么全部成功,要么全部失败。

使用commit()提交事务,使用rollback()回滚事务。

# 开始一个事务
conn = sqlite3.connect('mydatabase.db')
cursor = conn.cursor()
try:
    # 执行一些数据库操作
    cursor.execute("INSERT INTO students (name, age) VALUES (?, ?)", ('Bob', 30))
    cursor.execute("UPDATE students SET age = ? WHERE name = ?", (31, 'Bob'))
    # 提交事务
    conn.commit()
except sqlite3.Error:
    # 发生错误,回滚事务
    conn.rollback()
finally:
    conn.close()

数据库索引

索引是数据库中用于加速数据检索的重要组成部分。在表格上创建索引以提高查询性能。

# 在"students"表格的"name"字段上创建索引
cursor.execute("CREATE INDEX IF NOT EXISTS idx_name ON students (name)")
conn.commit()

数据库备份和恢复

定期备份数据库以防止数据丢失是一个好习惯。通过复制数据库文件来创建备份,或者使用SQLite的备份命令。

import shutil

# 创建数据库备份
shutil.copy2('mydatabase.db', 'mydatabase_backup.db')

安全性考虑

在将用户提供的数据插入到数据库之前,务必进行适当的输入验证和数据清理,以防止SQL注入攻击。

user_input = input("Enter a student name: ")

# 使用参数化查询来避免SQL注入
cursor.execute("INSERT INTO students (name) VALUES (?)", (user_input,))
conn.commit()

总结

SQLite是一种轻量级的嵌入式数据库引擎,适用于各种应用程序,从小型工具到大型数据驱动应用程序。SQLite是一个强大且灵活的数据库引擎,对于许多应用程序都非常适用。

以上就是Python连接SQLite数据库操作实战指南从入门到精通的详细内容,更多关于Python SQLite数据库操作的资料请关注脚本之家其它相关文章!

相关文章

  • celery在python爬虫中定时操作实例讲解

    celery在python爬虫中定时操作实例讲解

    在本篇文章里小编给大家整理了一篇关于celery在python爬虫中定时操作实例讲解内容,需要的朋友们可以参考下。
    2020-11-11
  • Python re.split方法分割字符串的实现示例

    Python re.split方法分割字符串的实现示例

    本文主要介绍了Python re.split方法分割字符串的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • Python微服务开发之使用FastAPI构建高效API

    Python微服务开发之使用FastAPI构建高效API

    微服务架构在现代软件开发中日益普及,它将复杂的应用程序拆分成多个可独立部署的小型服务。本文将介绍如何使用 Python 的 FastAPI 库快速构建和部署微服务,感兴趣的可以了解一下
    2023-05-05
  • python 连接各类主流数据库的实例代码

    python 连接各类主流数据库的实例代码

    下面小编就为大家分享一篇python 连接各类主流数据库的实例代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • Python实战之实现简单的名片管理系统

    Python实战之实现简单的名片管理系统

    这篇文章主要介绍了Python实战之实现简单的名片管理系统,文中有非常详细的代码示例,对正在学习python的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-04-04
  • python将字典内容写入json文件的实例代码

    python将字典内容写入json文件的实例代码

    在本篇文章里小编给大家整理的是一篇关于python将字典内容写入json文件的实例代码,有需要的朋友们可以参考下。
    2020-08-08
  • Python实现一个简单三层神经网络的搭建及测试 代码解析

    Python实现一个简单三层神经网络的搭建及测试 代码解析

    一个完整的神经网络一般由三层构成:输入层,隐藏层(可以有多层)和输出层。本文所构建的神经网络隐藏层只有一层。一个神经网络主要由三部分构成(代码结构上):初始化,训练,和预测。,需要的朋友可以参考下面文章内容的具体内容
    2021-09-09
  • pandas map(),apply(),applymap()区别解析

    pandas map(),apply(),applymap()区别解析

    这篇文章主要介绍了pandas map(),apply(),applymap()区别解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • Python使用chrome配置selenium操作详解

    Python使用chrome配置selenium操作详解

    这篇文章主要为大家详细介绍了chrome配置selenium操作的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • 基于Pytorch实现逻辑回归

    基于Pytorch实现逻辑回归

    这篇文章主要为大家详细介绍了基于Pytorch实现逻辑回归,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07

最新评论