SQLite作为一种轻量级的数据库管理系统,因其简单易用、体积小巧且功能强大等特点,在Python编程中得到了广泛的应用。本文将深入探讨SQLite在Python编程中的强大应用以及高效实践。SQLi...
SQLite作为一种轻量级的数据库管理系统,因其简单易用、体积小巧且功能强大等特点,在Python编程中得到了广泛的应用。本文将深入探讨SQLite在Python编程中的强大应用以及高效实践。
SQLite是一款开源的轻量级关系型数据库,它不需要独立的服务器进程,可以直接嵌入到应用程序中。SQLite支持标准的SQL语言,具有易于使用、高效、可靠的特点。Python内置了sqlite3模块,可以直接操作SQLite数据库。
import sqlite3
# 连接到SQLite数据库
# 如果文件不存在,会自动在当前目录创建:
conn = sqlite3.connect('example.db')# 创建一个Cursor:
cursor = conn.cursor()
# 创建表:
cursor.execute('''CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT NOT NULL, age INTEGER)''')# 插入一条记录:
cursor.execute("INSERT INTO users (name, age) VALUES ('Alice', 28)")
# 提交事务:
conn.commit()# 查询数据:
cursor.execute("SELECT id, name, age FROM users")
for row in cursor.fetchall(): print(row)# 更新一条记录:
cursor.execute("UPDATE users SET age = 29 WHERE id = 1")
# 提交事务:
conn.commit()# 删除一条记录:
cursor.execute("DELETE FROM users WHERE id = 1")
# 提交事务:
conn.commit()# 关闭Cursor:
cursor.close()
# 关闭Connection:
conn.close()为了防止SQL注入攻击,建议使用参数化查询。
cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", (name, age))使用事务可以提高数据库操作的效率,确保数据的一致性。
conn.execute('BEGIN TRANSACTION;')
# 执行一系列操作
conn.commit()在数据库操作过程中,可能会遇到各种异常,合理处理异常可以保证程序的健壮性。
try: # 执行数据库操作
except sqlite3.Error as e: print("数据库错误:", e)ORM(对象关系映射)框架可以将Python对象与数据库表进行映射,简化数据库操作。
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
Base = declarative_base()
class User(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) name = Column(String) age = Column(Integer)
# 创建数据库引擎
engine = create_engine('sqlite:///example.db')
# 创建表
Base.metadata.create_all(engine)
# 创建Session
Session = sessionmaker(bind=engine)
session = Session()
# 添加对象
user = User(name='Alice', age=28)
session.add(user)
# 提交事务
session.commit()
# 关闭Session
session.close()SQLite在Python编程中具有强大的应用和高效的实践。通过熟练掌握SQLite的用法和技巧,可以轻松实现数据存储、查询、更新和删除等操作,为Python程序提供强大的数据支持。