Python数据库连接基础
数据库操作是现代编程的核心技能。无论是简单脚本还是复杂Web服务,数据的存储、读取和管理都是构建完整应用的关键环节。
Python提供了多种数据库操作方案。本文将深入讲解如何使用sqlite3模块连接数据库,以及如何通过json.dump和json.load处理JSON格式数据。我们将通过实际案例,带你掌握这些技术的核心要点。
为什么项目需要数据库
当你的程序需要在不同运行间保存数据时,数据库就是最佳选择。Python的sqlite3数据库为信息存储提供了可靠且易用的解决方案。
使用数据库的核心优势
在Python项目中使用数据库能带来以下好处:
• 结构化数据的高效存储 • 快速数据检索与过滤 • 集中化数据管理 • 数据完整性保障 • 便捷的备份恢复 • 良好的可扩展性
Python操作SQLite数据库
SQLite数据库是小项目的理想选择。它直接嵌入应用程序,无需独立服务器,数据存储在.db文件中。
连接SQLite数据库
sqlite3模块是Python标准库的一部分,无需额外安装即可使用。
import sqlite3
# 连接数据库(如果文件不存在,会自动创建)
conn = sqlite3.connect('example.db')
# 创建游标对象执行SQL查询
cursor = conn.cursor()
连接不存在的数据库时,系统会自动创建文件,这大大简化了新项目的启动流程。
创建数据表
添加数据前需要先定义表结构。使用CREATE TABLE命令:
cursor.execute('''
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
age INTEGER
)
''')
conn.commit()
IF NOT EXISTS语句可防止重复创建表时出错。PRIMARY KEY AUTOINCREMENT确保自动生成唯一ID。
插入数据
使用INSERT INTO命令添加数据。建议使用参数化查询防止SQL注入攻击:
cursor.execute('''
INSERT INTO users (name, age) VALUES (?, ?)
''', ('Alice', 30))
# 批量插入多条记录
users_data = [
('Bob', 25),
('Carol', 35),
('David', 40)
]
cursor.executemany('''
INSERT INTO users (name, age) VALUES (?, ?)
''', users_data)
conn.commit()
executemany方法可以高效地一次性插入多条数据。
查询与读取数据
根据需求选择不同的数据读取方法:
# 获取所有记录
cursor.execute('SELECT * FROM users')
all_rows = cursor.fetchall()
for row in all_rows:
print(row)
# 获取单条记录
cursor.execute('SELECT * FROM users WHERE age > ?', (30,))
one_row = cursor.fetchone()
print(one_row)
# 获取指定数量记录
cursor.execute('SELECT name, age FROM users ORDER BY age')
some_rows = cursor.fetchmany(2)
for row in some_rows:
print(f"姓名: {row[0]}, 年龄: {row[1]}")
更新与删除数据
使用UPDATE和DELETE命令修改现有记录: