一文搞懂Python中轻量型数据库SQLite3的用法

 更新时间:2025年07月24日 10:20:50   作者:climber1121  
SQLite 是一个极受欢迎的轻量级数据库,它被广泛应用于各种大小的项目中,本文将详细介绍 Python 中如何使用 SQLite3 库进行数据库操作,感兴趣的小伙伴可以了解下

1 引言

在进行数据存储和管理时,我们常常需要一个轻量级而又功能强大的数据库系统。SQLite 是一个极受欢迎的轻量级数据库,它被广泛应用于各种大小的项目中。Python 自带了对 SQLite 的支持,使得在 Python 中使用 SQLite 变得非常简单和直观。本文将详细介绍 Python 中如何使用 SQLite3 库进行数据库操作。

2 SQLite3 简介

SQLite 是一个基于 C 语言的轻量级 SQL 数据库引擎。它不需要独立的服务器进程,数据库完整地存储在一个磁盘文件中。Python 标准库中的 sqlite3 模块提供了一个与 SQLite 数据库交互的接口。

3 基本步骤

使用 SQLite3 模块主要包括以下几个步骤:

  • 连接数据库
  • 创建表
  • 插入数据
  • 查询数据
  • 更新/删除数据
  • 关闭数据库连接

4 示例代码

4.1 连接数据库

import sqlite3

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

4.2 创建表

# 创建一个 Cursor 对象
cursor = conn.cursor()

# 创建表
cursor.execute('''CREATE TABLE IF NOT EXISTS users
               (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)''')

4.3 插入数据

# 插入数据
cursor.execute("INSERT INTO users (name, age) VALUES ('Alice', 30)")
cursor.execute("INSERT INTO users (name, age) VALUES ('Bob', 25)")

# 提交事务
conn.commit()

4.4 查询数据

# 查询数据
cursor.execute("SELECT * FROM users")
print(cursor.fetchall())

4.5 更新/删除数据

# 更新数据
cursor.execute("UPDATE users SET age = 31 WHERE name = 'Alice'")

# 删除数据
cursor.execute("DELETE FROM users WHERE name = 'Bob'")

# 提交事务
conn.commit()

4.6 关闭数据库连接

# 关闭 Cursor 和 Connection
cursor.close()
conn.close()

注意事项

  • 异常处理:在进行数据库操作时,使用 try...except 语句处理异常是一个好习惯。
  • 事务管理:使用 commit() 来保存更改,使用 rollback() 来撤销未提交的事务。
  • 数据库安全:避免 SQL 注入攻击,最好使用参数化查询。

5 实例演示

以下是一个使用 Python 中的 sqlite3 模块来操作 SQLite 数据库的完整示例。这个例子将展示如何连接到数据库、创建表、插入、查询、更新、删除数据,并最终关闭数据库连接。我们将这些操作封装在一个名为 sqlite_example.py 的 Python 文件中。

# sqlite_example.py
import sqlite3

def create_connection(db_file):
    """ 创建数据库连接 """
    conn = None
    try:
        conn = sqlite3.connect(db_file)
        return conn
    except sqlite3.Error as e:
        print(e)
    return conn

def create_table(conn):
    """ 创建表 """
    try:
        cursor = conn.cursor()
        cursor.execute('''CREATE TABLE IF NOT EXISTS users
                        (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)''')
    except sqlite3.Error as e:
        print(e)

def insert_user(conn, user):
    """ 插入新用户 """
    try:
        cursor = conn.cursor()
        cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", user)
        conn.commit()
    except sqlite3.Error as e:
        print(e)

def update_user(conn, user):
    """ 更新用户信息 """
    try:
        cursor = conn.cursor()
        cursor.execute("UPDATE users SET age = ? WHERE name = ?", user)
        conn.commit()
    except sqlite3.Error as e:
        print(e)

def delete_user(conn, name):
    """ 删除用户 """
    try:
        cursor = conn.cursor()
        cursor.execute("DELETE FROM users WHERE name = ?", (name,))
        conn.commit()
    except sqlite3.Error as e:
        print(e)

def select_all_users(conn):
    """ 查询所有用户 """
    try:
        cursor = conn.cursor()
        cursor.execute("SELECT * FROM users")
        rows = cursor.fetchall()
        for row in rows:
            print(row)
    except sqlite3.Error as e:
        print(e)

def main():
    database = "example.db"

    # 创建数据库连接
    conn = create_connection(database)

    # 创建表
    if conn is not None:
        create_table(conn)
        
        # 插入数据
        insert_user(conn, ('Alice', 30))
        insert_user(conn, ('Bob', 25))

        # 更新数据
        update_user(conn, (35, 'Alice'))

        # 查询数据
        print("查询到的所有用户:")
        select_all_users(conn)

        # 删除数据
        delete_user(conn, 'Bob')

        # 再次查询数据
        print("\n删除后的用户数据:")
        select_all_users(conn)

        # 关闭数据库连接
        conn.close()
    else:
        print("Error! 无法创建数据库连接。")

if __name__ == '__main__':
    main()
   
 """
 控制台输出结果:
查询到的所有用户:
 (1, 'Alice', 35)
 (2, 'Alice', 35)
 (3, 'Bob', 25)
 
 删除后的用户数据:
 (1, 'Alice', 35)
 (2, 'Alice', 35)
 """

在这个脚本中,我们定义了不同的函数来处理数据库的创建连接、创建表、插入、更新、删除和查询操作。main 函数中整合了这些操作的流程。运行这个脚本将在同目录下创建一个名为 example.db 的 SQLite 数据库文件,并在其中执行了一系列的数据库操作。

TIPS

可以通过数据库浏览器查询创建的数据库,下载地址:DB Browser for SQLite官方下载链接

6 总结

SQLite3 提供了一个简单高效的方式来进行数据库操作,非常适合于轻量级应用。Python 的 sqlite3 模块使得在 Python 中操作 SQLite 数据库变得轻而易举。

到此这篇关于一文搞懂Python中轻量型数据库SQLite3的用法的文章就介绍到这了,更多相关Python SQLite3内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • opencv 图像滤波(均值,方框,高斯,中值)

    opencv 图像滤波(均值,方框,高斯,中值)

    这篇文章主要介绍了opencv 图像滤波(均值,方框,高斯,中值),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • 编写Python脚本来获取Google搜索结果的示例

    编写Python脚本来获取Google搜索结果的示例

    这篇文章主要介绍了编写Python脚本来获取Google搜索结果的示例,也是利用Python编写爬虫的一个简单实现,需要的朋友可以参考下
    2015-05-05
  • python time.strptime格式化实例详解

    python time.strptime格式化实例详解

    在本篇文章里小编给大家整理的是一篇关于python time.strptime格式化实例详解内容,对此有兴趣的朋友们可以学习参考下。
    2021-02-02
  • Python中re模块:匹配开头/结尾(^/$)

    Python中re模块:匹配开头/结尾(^/$)

    本文主要介绍了Python中re模块:匹配开头/结尾(^/$),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • Python标准库calendar的使用方法

    Python标准库calendar的使用方法

    本文主要介绍了Python标准库calendar的使用方法,calendar模块主要由Calendar类与一些模块方法构成,Calendar类又衍生了一些子孙类来帮助我们实现一些特殊的功能,感兴趣的可以了解一下
    2021-11-11
  • Python中一个for循环循环多个变量的示例

    Python中一个for循环循环多个变量的示例

    今天小编就为大家分享一篇Python中一个for循环循环多个变量的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • python 进阶学习之python装饰器小结

    python 进阶学习之python装饰器小结

    这篇文章主要介绍了python 进阶学习之python装饰器小结,本文通过场景分析给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • Python中模块与包有相同名字的处理方法

    Python中模块与包有相同名字的处理方法

    这篇文章主要给大家介绍了在Python中模块与包有相同名字的处理方法,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-05-05
  • 如何将写好的.py/.java程序变成.exe文件详解

    如何将写好的.py/.java程序变成.exe文件详解

    有时候我们需要将自己写的代码打包成exe文件,给别人使用需要怎么办呢,下面这篇文章主要给大家介绍了关于如何将写好的.py/.java程序变成.exe文件的相关资料,需要的朋友可以参考下
    2023-01-01
  • error conda:ProxyError:Conda cannot proceed due to an error in your proxy configuration解决

    error conda:ProxyError:Conda cannot proceed due to an 

    这篇文章主要为大家介绍了error conda:ProxyError:Conda cannot proceed due to an error in your proxy configuration解决方法,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07

最新评论