sqlite3 python 如何使用

发布于:2025-02-11 ⋅ 阅读:(59) ⋅ 点赞:(0)

在Python中使用SQLite3数据库进行开发是非常直接且便捷的过程,因为SQLite3是Python标准库的一部分,这意味着你不需要额外安装任何包就可以开始使用它。下面我将详细介绍如何在Python中使用SQLite3模块来进行基本的操作,包括连接数据库、创建表、插入数据、查询数据以及关闭连接等。

导入sqlite3模块

首先,你需要导入sqlite3模块。这个模块提供了与SQLite数据库交互所需的所有功能。由于它是Python的内置模块,所以可以直接导入而无需安装:

import sqlite3

连接到SQLite数据库

接下来,你可以通过调用sqlite3.connect()方法来建立与SQLite数据库的连接。如果你指定的数据库文件不存在,那么它将会被自动创建;如果存在,则会打开现有的数据库。此外,还可以使用:memory:作为参数来创建一个仅存在于内存中的临时数据库:

conn = sqlite3.connect('example.db')  # 创建或打开名为 example.db 的数据库
# 或者
conn = sqlite3.connect(':memory:')    # 创建一个内存中的数据库

创建游标对象

一旦建立了连接,就需要创建一个游标(Cursor)对象。游标用于执行SQL语句,并获取执行结果。创建游标的代码如下所示:

cursor = conn.cursor()

执行SQL命令

有了游标之后,就可以执行各种SQL命令了。例如,创建一个新的表:

cursor.execute('''CREATE TABLE IF NOT EXISTS stocks
             (date text, trans text, symbol text, qty real, price real)''')

这里使用了IF NOT EXISTS子句,以确保只有当表不存在时才会创建新表。

插入数据

要向表中插入数据,可以使用execute()方法并提供相应的SQL插入语句。为了避免SQL注入攻击,推荐使用参数化查询的方式传递值:

cursor.execute("INSERT INTO stocks VALUES ('2006-01-05','BUY','RHAT',100,35.14)")
# 或者使用参数化查询
data = ('2006-03-28', 'BUY', 'IBM', 1000, 45.0)
cursor.execute("INSERT INTO stocks VALUES (?, ?, ?, ?, ?)", data)

对于批量插入多条记录的情况,可以使用executemany()方法,它接受一个包含多个参数元组的列表作为输入:

purchases = [
    ('2006-03-28', 'BUY', 'IBM', 1000, 45.0),
    ('2006-04-05', 'BUY', 'MSFT', 1000, 72.0),
]
cursor.executemany('INSERT INTO stocks VALUES (?,?,?,?,?)', purchases)

查询数据

执行完插入操作后,可以通过SELECT语句来检索数据。可以使用fetchone(), fetchall()或者fetchmany(size)方法从结果集中获取行:

cursor.execute('SELECT * FROM stocks ORDER BY price')
rows = cursor.fetchall()
for row in rows:
    print(row)

提交事务和关闭连接

所有的更改都必须提交到数据库才能生效。如果不希望保存所做的更改,可以选择回滚事务。最后不要忘记关闭游标和连接,以释放资源:

conn.commit()
# 或者
conn.rollback()

cursor.close()
conn.close()

异常处理

为了保证程序的安全性和稳定性,在实际应用中应该总是添加适当的异常处理机制。比如,使用try...except...finally结构来确保即使发生错误也能正确地关闭资源:

try:
    conn = sqlite3.connect('example.db')
    cursor = conn.cursor()
    # 执行SQL语句...
except sqlite3.Error as e:
    print(f"An error occurred: {e}")
finally:
    if cursor:
        cursor.close()
    if conn:
        conn.close()

以上就是Python中使用SQLite3的基本步骤。通过这些简单的API,开发者可以轻松地管理本地存储的数据,同时保持良好的性能和安全性. 如果需要更复杂的数据库操作或是与其他类型的数据库集成,则可能需要考虑其他的ORM框架如SQLAlchemy等工具。不过对于许多小型项目来说,SQLite3已经足够强大并且易于使用了。