一文搞懂:Python 中轻量型数据库 SQLite3 的用法
文章目录
- 一文搞懂:Python 中轻量型数据库 SQLite3 的用法
- 1 引言
- 2 SQLite3 简介
- 3 基本步骤
- 4 示例代码
- 4.1 连接数据库
- 4.2 创建表
- 4.3 插入数据
- 4.4 查询数据
- 4.5 更新/删除数据
- 4.6 关闭数据库连接
- 5 实例演示
- 6 总结
1 引言
在进行数据存储和管理时,我们常常需要一个轻量级而又功能强大的数据库系统。SQLite 是一个极受欢迎的轻量级数据库,它被广泛应用于各种大小的项目中。Python 自带了对 SQLite 的支持,使得在 Python 中使用 SQLite 变得非常简单和直观。本文将详细介绍 Python 中如何使用 SQLite3 库进行数据库操作。
2 SQLite3 简介
SQLite 是一个基于 C 语言的轻量级 SQL 数据库引擎。它不需要独立的服务器进程,数据库完整地存储在一个磁盘文件中。Python 标准库中的 sqlite3
模块提供了一个与 SQLite 数据库交互的接口。
3 基本步骤
使用 SQLite3 模块主要包括以下几个步骤:
- 连接数据库
- 创建表
- 插入数据
- 查询数据
- 更新/删除数据
- 关闭数据库连接
4 示例代码
4.1 连接数据库
import sqlite3
# 连接到数据库(如果不存在,则创建)
conn = sqlite3.connect('example.db')
4.2 创建表
# 创建一个 Cursor 对象
cursor = conn.cursor()
# 创建表
cursor.execute('''CREATE TABLE IF NOT EXISTS users
(id INTEGER PRIMARY KEY, name TEXT, age INTEGER)''')
4.3 插入数据
# 插入数据
cursor.execute("INSERT INTO users (name, age) VALUES ('Alice', 30)")
cursor.execute("INSERT INTO users (name, age) VALUES ('Bob', 25)")
# 提交事务
conn.commit()
4.4 查询数据
# 查询数据
cursor.execute("SELECT * FROM users")
print(cursor.fetchall())
4.5 更新/删除数据
# 更新数据
cursor.execute("UPDATE users SET age = 31 WHERE name = 'Alice'")
# 删除数据
cursor.execute("DELETE FROM users WHERE name = 'Bob'")
# 提交事务
conn.commit()
4.6 关闭数据库连接
# 关闭 Cursor 和 Connection
cursor.close()
conn.close()
注意事项
- 异常处理:在进行数据库操作时,使用
try...except
语句处理异常是一个好习惯。- 事务管理:使用
commit()
来保存更改,使用rollback()
来撤销未提交的事务。- 数据库安全:避免 SQL 注入攻击,最好使用参数化查询。
5 实例演示
以下是一个使用 Python 中的 sqlite3
模块来操作 SQLite 数据库的完整示例。这个例子将展示如何连接到数据库、创建表、插入、查询、更新、删除数据,并最终关闭数据库连接。我们将这些操作封装在一个名为 sqlite_example.py
的 Python 文件中。
# sqlite_example.py
import sqlite3
def create_connection(db_file):
""" 创建数据库连接 """
conn = None
try:
conn = sqlite3.connect(db_file)
return conn
except sqlite3.Error as e:
print(e)
return conn
def create_table(conn):
""" 创建表 """
try:
cursor = conn.cursor()
cursor.execute('''CREATE TABLE IF NOT EXISTS users
(id INTEGER PRIMARY KEY, name TEXT, age INTEGER)''')
except sqlite3.Error as e:
print(e)
def insert_user(conn, user):
""" 插入新用户 """
try:
cursor = conn.cursor()
cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", user)
conn.commit()
except sqlite3.Error as e:
print(e)
def update_user(conn, user):
""" 更新用户信息 """
try:
cursor = conn.cursor()
cursor.execute("UPDATE users SET age = ? WHERE name = ?", user)
conn.commit()
except sqlite3.Error as e:
print(e)
def delete_user(conn, name):
""" 删除用户 """
try:
cursor = conn.cursor()
cursor.execute("DELETE FROM users WHERE name = ?", (name,))
conn.commit()
except sqlite3.Error as e:
print(e)
def select_all_users(conn):
""" 查询所有用户 """
try:
cursor = conn.cursor()
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
for row in rows:
print(row)
except sqlite3.Error as e:
print(e)
def main():
database = "example.db"
# 创建数据库连接
conn = create_connection(database)
# 创建表
if conn is not None:
create_table(conn)
# 插入数据
insert_user(conn, ('Alice', 30))
insert_user(conn, ('Bob', 25))
# 更新数据
update_user(conn, (35, 'Alice'))
# 查询数据
print("查询到的所有用户:")
select_all_users(conn)
# 删除数据
delete_user(conn, 'Bob')
# 再次查询数据
print("\n删除后的用户数据:")
select_all_users(conn)
# 关闭数据库连接
conn.close()
else:
print("Error! 无法创建数据库连接。")
if __name__ == '__main__':
main()
"""
控制台输出结果:
查询到的所有用户:
(1, 'Alice', 35)
(2, 'Alice', 35)
(3, 'Bob', 25)
删除后的用户数据:
(1, 'Alice', 35)
(2, 'Alice', 35)
"""
在这个脚本中,我们定义了不同的函数来处理数据库的创建连接、创建表、插入、更新、删除和查询操作。main
函数中整合了这些操作的流程。运行这个脚本将在同目录下创建一个名为 example.db
的 SQLite 数据库文件,并在其中执行了一系列的数据库操作。
TIPS
可以通过数据库浏览器查询创建的数据库,下载地址:DB Browser for SQLite官方下载链接
6 总结
SQLite3 提供了一个简单高效的方式来进行数据库操作,非常适合于轻量级应用。Python 的 sqlite3
模块使得在 Python 中操作 SQLite 数据库变得轻而易举。
希望这篇文章能帮助您理解和使用 Python 中的 SQLite3。如果您有任何疑问或建议,请在评论区留言,让我们共同进步!
作者:climber1121
链接:https://blog.csdn.net/climber1121
来源:CSDN
版权声明:本文为博主原创文章,转载请附上原文出处链接和本声明。