Python SQLite3 数据库操作入门:连接、建表与增删改查

叶初
叶初
发布时间:2026-10-13 | 2人浏览过
原创

本文介绍如何在 Python 中使用内置的 sqlite3 模块进行数据库开发。内容涵盖创建数据库连接、在内存或文件中存储数据、创建数据表,以及执行 INSERT、SELECT、UPDATE 和 DELETE 等核心 SQL 操作。通过具体代码示例,帮助开发者快速掌握 SQLite3 在 Python 中的实际应用。

近期在开发简易通讯录应用时,面临数据存储方案的选择难题。虽然可以使用 Python 的列表或字典暂存数据,但这种方式缺乏持久性和可靠性。因此,探索 Python 内置的数据库模块成为更优的解决方案。

SQLite3 简介

Python 通过 sqlite3 模块与 SQLite3 数据库集成。该模块由 Gerhard Haring 编写,提供了符合 PEP 249 规范中 DB-API 2.0 标准的 SQL 接口。从 Python 2.5.x 版本开始,该模块已作为标准库的一部分默认包含,无需额外安装。使用 sqlite3 模块时,首先需要创建一个表示数据库的连接对象,随后可选地创建光标对象,以便执行各类 SQL 语句。

了解其基本架构后,接下来我们将通过具体步骤学习如何使用它。

连接数据库

以下 Python 代码展示了如何连接到一个现有数据库。如果指定的数据库文件不存在,系统会自动创建该数据库,并返回一个数据库对象。

#-*- coding:utf-8 -*-
import sqlite3
conn = sqlite3.connect('mysql_person.db')

print "Opened database successfully";

在此步骤中,也可以将数据库名称指定为特殊的 :memory:,这将在 RAM 中创建一个临时数据库。运行上述程序后,会在当前目录生成 mysql_person.db 数据库文件,路径可根据实际需求调整。将代码保存至 sqlite.py 文件并按如下方式执行:$chmod +x sqlite.py $./sqlite.py。若数据库创建成功,终端将显示相应的成功消息。

$chmod +x sqlite.py
$./sqlite.py
Open database successfully

创建表

以下 Python 代码片段用于在之前创建的数据库中建立数据表结构。

#-*- coding:utf-8 -*-

import sqlite3

conn = sqlite3.connect('mysql_person.db')
print "Opened database successfully";

conn.execute('''CREATE TABLE MT
    (ID INT PRIMARY KEY   NOT NULL,
    NAME      TEXT  NOT NULL,
    AGE      INT   NOT NULL,
    ADDRESS    CHAR(50),
    SALARY     REAL);''')
print "Table created successfully";

conn.close()

执行上述程序后,会在 test.db 中创建 MT 表,并输出如下提示信息。

Opened database successfully
Table created successfully

INSERT 操作

下面的 Python 程序演示了如何向已创建的 MT 表中插入新记录。

#-*- coding:utf-8 -*-

import sqlite3

conn = sqlite3.connect('mysql_person.db')
print "Opened database successfully";

conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
   VALUES (1, 'Paul', 32, 'California', 20000.00 )");

conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
   VALUES (2, 'Allen', 25, 'Texas', 15000.00 )");

conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
   VALUES (3, 'Teddy', 23, 'Norway', 20000.00 )");

conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
   VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 )");

conn.commit()
print "Records created successfully";
conn.close()

运行该程序后,指定的记录将被添加到 MT 表中,并显示以下两行输出信息。

Opened database successfully
Records created successfully

SELECT 操作

以下 Python 程序展示了如何从之前创建的 MT 表中检索并显示记录。

#-*- coding:utf-8 -*-

import sqlite3

conn = sqlite3.connect('mysql_person.db')
print "Opened database successfully";

cursor = conn.execute("SELECT id, name, address, salary from MT")
for row in cursor:
  print "ID = ", row[0]
  print "NAME = ", row[1]
  print "ADDRESS = ", row[2]
  print "SALARY = ", row[3], "\n"

print "Operation done successfully";
conn.close()

执行上述程序后,将产生如下查询结果。

Opened database successfully
ID = 1
NAME = Paul
ADDRESS = California
SALARY = 20000.0

ID = 2
NAME = Allen
ADDRESS = Texas
SALARY = 15000.0

ID = 3
NAME = Teddy
ADDRESS = Norway
SALARY = 20000.0

ID = 4
NAME = Mark
ADDRESS = Rich-Mond
SALARY = 65000.0

Operation done successfully

UPDATE 操作

下面的 Python 代码演示了如何使用 UPDATE 语句更新现有记录,随后从 COMPANY 表中检索并显示更新后的数据。

#-*- coding:utf-8 -*-

import sqlite3

conn = sqlite3.connect('mysql_person.db')
print "Opened database successfully";

conn.execute("UPDATE COMPANY set SALARY = 25000.00 where ID=1")
conn.commit()
print "Total number of rows updated :", conn.total_changes

cursor = conn.execute("SELECT id, name, address, salary from MT")
for row in cursor:
  print "ID = ", row[0]
  print "NAME = ", row[1]
  print "ADDRESS = ", row[2]
  print "SALARY = ", row[3], "\n"

print "Operation done successfully";
conn.close()

运行该程序后,将输出如下更新结果。

Opened database successfully
Total number of rows updated : 1
ID = 1
NAME = Paul
ADDRESS = California
SALARY = 25000.0

ID = 2
NAME = Allen
ADDRESS = Texas
SALARY = 15000.0

ID = 3
NAME = Teddy
ADDRESS = Norway
SALARY = 20000.0

ID = 4
NAME = Mark
ADDRESS = Rich-Mond
SALARY = 65000.0

Operation done successfully

DELETE 操作

以下 Python 代码展示了如何使用 DELETE 语句删除特定记录,随后从 COMPANY 表中检索并显示剩余的记录。

#-*- coding:utf-8 -*-

import sqlite3

conn = sqlite3.connect('mysql_person.db')
print "Opened database successfully";

conn.execute("DELETE from COMPANY where ID=2;")
conn.commit()
print "Total number of rows deleted :", conn.total_changes

cursor = conn.execute("SELECT id, name, address, salary from MT")
for row in cursor:
 print "ID = ", row[0]
 print "NAME = ", row[1]
 print "ADDRESS = ", row[2]
 print "SALARY = ", row[3], "\n"

print "Operation done successfully";
conn.close()

执行上述程序后,将产生如下删除后的查询结果。

Opened database successfully
Total number of rows deleted : 1
ID = 1
NAME = Paul
ADDRESS = California
SALARY = 20000.0

ID = 3
NAME = Teddy
ADDRESS = Norway
SALARY = 20000.0

ID = 4
NAME = Mark
ADDRESS = Rich-Mond
SALARY = 65000.0

Operation done successfully

本文涵盖了 SQLite3 在 Python 中的基本使用方法,希望能为读者提供有益参考。欢迎继续支持本站获取更多技术内容。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表