当前位置:首页 > Python > 正文

Python操作SQLite数据库完全指南(零基础入门SQLite内置数据库)

在Python开发中,经常需要使用轻量级的数据库来存储和管理数据。而SQLite作为一款嵌入式关系型数据库,因其无需独立服务器、零配置、文件级存储等优点,被广泛应用于各种场景。更棒的是,Python语言从2.5版本起就内置了SQLite支持,无需额外安装任何第三方库即可直接使用!

本教程将带你从零开始,一步步学习如何在Python中使用SQLite数据库,即使你是编程小白也能轻松上手。

为什么选择SQLite?

  • ✅ 轻量级:整个数据库就是一个文件,便于携带和备份
  • ✅ 无需安装:Python自带sqlite3模块,开箱即用
  • ✅ 支持标准SQL:可以使用熟悉的SQL语句进行增删改查
  • ✅ 单文件存储:所有数据都保存在一个.db文件中,管理简单
Python操作SQLite数据库完全指南(零基础入门SQLite内置数据库) Python SQLite教程 SQLite内置数据库 Python操作SQLite SQLite初学者指南 第1张

第一步:导入SQLite模块

Python通过内置的sqlite3模块来操作SQLite数据库。首先我们需要导入它:

import sqlite3

第二步:连接数据库

使用sqlite3.connect()函数可以连接到数据库。如果指定的数据库文件不存在,SQLite会自动创建它。

# 连接到数据库(如果不存在则自动创建)conn = sqlite3.connect('example.db')# 创建一个游标对象,用于执行SQL语句cursor = conn.cursor()

第三步:创建数据表

使用cursor.execute()方法可以执行SQL语句。下面创建一个名为users的表:

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

第四步:插入数据

向表中插入数据有多种方式,推荐使用参数化查询来防止SQL注入:

# 插入单条数据insert_sql = "INSERT INTO users (name, age, email) VALUES (?, ?, ?)"cursor.execute(insert_sql, ("张三", 25, "zhangsan@example.com"))# 插入多条数据users_data = [    ("李四", 30, "lisi@example.com"),    ("王五", 28, "wangwu@example.com")]cursor.executemany(insert_sql, users_data)# 提交事务conn.commit()

第五步:查询数据

使用SELECT语句查询数据,并通过游标的fetch方法获取结果:

# 查询所有数据cursor.execute("SELECT * FROM users")all_users = cursor.fetchall()for user in all_users:    print(f"ID: {user[0]}, 姓名: {user[1]}, 年龄: {user[2]}, 邮箱: {user[3]}")# 查询特定条件的数据cursor.execute("SELECT name, age FROM users WHERE age > ?", (25,))results = cursor.fetchall()print("年龄大于25岁的用户:", results)

第六步:关闭连接

完成所有操作后,记得关闭游标和数据库连接,释放资源:

# 关闭游标和连接cursor.close()conn.close()

完整示例代码

下面是一个完整的Python SQLite教程示例,包含了创建表、插入数据、查询数据的全过程:

import sqlite3# 连接数据库conn = sqlite3.connect('example.db')cursor = conn.cursor()# 创建表cursor.execute('''CREATE TABLE IF NOT EXISTS users (    id INTEGER PRIMARY KEY AUTOINCREMENT,    name TEXT NOT NULL,    age INTEGER,    email TEXT UNIQUE)''')# 插入数据cursor.execute("INSERT INTO users (name, age, email) VALUES (?, ?, ?)",               ("赵六", 22, "zhaoliu@example.com"))conn.commit()# 查询数据cursor.execute("SELECT * FROM users")users = cursor.fetchall()print("用户列表:")for user in users:    print(user)# 关闭连接cursor.close()conn.close()

常见问题与最佳实践

在使用SQLite内置数据库时,有几个重要的注意事项:

  • 💡 始终使用参数化查询(?占位符)来防止SQL注入攻击
  • 💡 记得调用conn.commit()提交事务,否则数据不会保存
  • 💡 操作完成后及时关闭游标和连接,避免资源泄漏
  • 💡 对于复杂的Python操作SQLite场景,可以考虑使用上下文管理器(with语句)自动管理连接

总结

通过本SQLite初学者指南,你应该已经掌握了在Python中使用SQLite数据库的基本技能。SQLite作为Python的内置数据库解决方案,非常适合小型项目、原型开发、学习SQL以及需要轻量级数据存储的场景。

现在你已经具备了使用Python SQLite教程中所学知识来构建自己的数据库应用的能力。快去动手实践吧!