SQLite介绍
SQLite 是一款轻型、小巧、高效的关系型数据库管理系统,它可以在任何操作系统中运行。而且它的驱动程序也非常丰富,各种语言都有对应的驱动。
这里我们使用 Python 自带的 sqlite3 模块来演示如何使用 Python 操作 SQLite 数据库。
引入模块
使用 Python 操作 SQLite 需要先引入 sqlite3 模块。
import sqlite3
连接数据库
连接 SQLite 数据库可以使用 connect() 方法,它有一个必需参数是数据库文件名,如果文件不存在则会自动创建,如果文件存在则会连接该文件。
# 连接或创建数据库
conn = sqlite3.connect('test.db')
connect() 方法还可以有其他参数,例如 timeout,它表示在等待某个锁的时间内如果没有成功,则会抛出 sqlite3.BusyError 异常。
创建表
创建表可以执行 SQL 语句,也可以使用 Python 操作数据库的 API。
# 创建表
conn.execute('''
CREATE TABLE if not exists company
(ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL);
''')
插入数据
插入数据需要使用 INSERT 语句,语法为:
conn.execute(f"INSERT INTO company (ID,NAME,AGE,ADDRESS,SALARY)
VALUES ({id}, '{name}', {age}, '{address}', {salary})")
或者使用参数化 SQL 语句,语法为:
conn.execute("INSERT INTO company (ID,NAME,AGE,ADDRESS,SALARY) VALUES (?, ?, ?, ?, ?)",
(id, name, age, address, salary))
其中 ? 表示占位符,后面的元组中为需要插入的数据。
查询数据
查询数据需要使用 SELECT 语句,语法为:
cursor = conn.execute("SELECT ID, NAME, AGE, ADDRESS, SALARY FROM company")
for row in cursor:
print(f"ID = {row[0]}, NAME = {row[1]}, AGE = {row[2]}, ADDRESS = {row[3]}, SALARY = {row[4]}")
更新数据
更新数据需要使用 UPDATE 语句,语法为:
conn.execute(f"UPDATE company SET SALARY = {salary} WHERE ID = {id}")
删除数据
删除数据需要使用 DELETE 语句,语法为:
conn.execute(f"DELETE from company where ID = {id}")
提交事务
Python 操作 SQLite 数据库自动开启一个事务,如果要提交事务,需要使用 commit() 方法。
conn.commit()
关闭数据库连接
不需要访问数据库时,需要关闭连接。
conn.close()
总结
通过上述代码可以看出,使用 Python 操作 SQLite 数据库非常简单,只需要使用一些简单的 SQL 语句或者 Python API 就可以完成增删改查等操作。SQLite 数据库的优点是体积小、运行速度快,尤其适合一些嵌入式设备或需要大量读写的场景。