Python3中的SQLite3数据库操作

SQLite是一款嵌入式关系型数据库引擎,它是一个零配置的、无服务器的、自给自足的数据库引擎。在Python3中,使用sqlite3模块可以方便地对SQLite数据库进行操作。本文将详细介绍如何在Python3中使用sqlite3模块进行数据库操作。

安装和导入sqlite3模块

首先,我们需要在Python3中安装sqlite3模块。sqlite3模块是Python3标准库的一部分,因此无需额外安装。

在Python脚本中导入sqlite3模块的方法如下:

import sqlite3

连接数据库

在使用sqlite3模块之前,我们需要先连接到SQLite数据库。连接SQLite数据库非常简单,可以使用connect()函数来进行连接。connect()函数接受一个参数,用于指定数据库的文件路径。如果该文件不存在,则会自动创建。

下面是一个连接到SQLite数据库的示例:

import sqlite3

conn = sqlite3.connect('mydatabase.db')

创建表格

在SQLite数据库中,数据以表格的形式进行存储。在使用表格之前,我们需要先创建表格。

使用sqlite3模块创建表格的方法如下:

import sqlite3

conn = sqlite3.connect('mydatabase.db')
cursor = conn.cursor()

# 创建表格
cursor.execute('''CREATE TABLE students
                  (id INT PRIMARY KEY NOT NULL,
                  name TEXT NOT NULL,
                  age INT NOT NULL);''')

conn.commit()
conn.close()

插入数据

在SQLite数据库中插入数据非常简单。我们只需要使用INSERT语句来插入数据即可。

下面是一个向students表格中插入数据的示例:

import sqlite3

conn = sqlite3.connect('mydatabase.db')
cursor = conn.cursor()

# 插入数据
cursor.execute("INSERT INTO students (id, name, age) VALUES (1, 'Alice', 18)")
cursor.execute("INSERT INTO students (id, name, age) VALUES (2, 'Bob', 20)")
cursor.execute("INSERT INTO students (id, name, age) VALUES (3, 'Charlie', 22)")

conn.commit()
conn.close()

查询数据

在SQLite数据库中查询数据也非常简单。我们只需要使用SELECT语句来查询数据即可。

下面是一个从students表格中查询数据的示例:

import sqlite3

conn = sqlite3.connect('mydatabase.db')
cursor = conn.cursor()

# 查询数据
cursor.execute("SELECT * FROM students")
rows = cursor.fetchall()

for row in rows:
    print(row)

conn.close()

更新数据

在SQLite数据库中更新数据也非常简单。我们只需要使用UPDATE语句来更新数据即可。

下面是一个更新students表格中数据的示例:

import sqlite3

conn = sqlite3.connect('mydatabase.db')
cursor = conn.cursor()

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

conn.commit()
conn.close()

删除数据

在SQLite数据库中删除数据也非常简单。我们只需要使用DELETE语句来删除数据即可。

下面是一个删除students表格中数据的示例:

import sqlite3

conn = sqlite3.connect('mydatabase.db')
cursor = conn.cursor()

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

conn.commit()
conn.close()

数据库事务

在SQLite数据库中,我们可以使用事务来确保一组操作的原子性和一致性。

在sqlite3模块中,事务的使用方法如下:

import sqlite3

conn = sqlite3.connect('mydatabase.db')
cursor = conn.cursor()

# 开始事务
cursor.execute("BEGIN")

# 执行操作
cursor.execute("INSERT INTO students (id, name, age) VALUES (4, 'David', 25)")

# 提交事务
cursor.execute("COMMIT")

conn.close()

数据库异常处理

在数据库操作中,可能会遇到各种异常情况。为了保证程序的稳定性,我们需要适当地处理这些异常。

在使用sqlite3模块进行数据库操作时,可以使用try-except语句来捕获异常并进行处理。

下面是一个捕获数据库异常的示例:

import sqlite3

try:
    conn = sqlite3.connect('mydatabase.db')
    cursor = conn.cursor()

    # 执行操作
    cursor.execute("INSERT INTO students (id, name,