首页 话题 小组 问答 好文 用户 我的社区 域名交易 唠叨

[SQLite]轻松掌握SQLite与Python集成:高效数据库操作实战指南

发布于 2025-06-23 17:03:58
0
819

引言SQLite是一款轻量级的数据库管理系统,常用于小型应用和嵌入式系统。Python是一种广泛使用的编程语言,具有简单易学、功能强大的特点。本文将介绍如何将SQLite与Python集成,通过实战案...

引言

SQLite是一款轻量级的数据库管理系统,常用于小型应用和嵌入式系统。Python是一种广泛使用的编程语言,具有简单易学、功能强大的特点。本文将介绍如何将SQLite与Python集成,通过实战案例,帮助您高效地进行数据库操作。

SQLite基础

1. SQLite简介

SQLite是一款开源的数据库管理系统,由D. Richard Hipp在2000年开发。它具有以下特点:

  • 轻量级:体积小,易于携带和部署。
  • 高效:读写速度快,性能优良。
  • 跨平台:支持多种操作系统,如Windows、Linux、macOS等。
  • 简单易用:使用SQL语言进行数据库操作,易于学习和掌握。

2. SQLite安装与配置

由于SQLite是轻量级数据库,因此无需安装。您只需下载SQLite的源代码或预编译的二进制文件即可使用。

Python与SQLite集成

1. 使用sqlite3模块

Python内置了sqlite3模块,可以直接进行SQLite数据库操作。以下是sqlite3模块的基本用法:

import sqlite3
# 连接数据库
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
# 创建表
cursor.execute('''CREATE TABLE IF NOT EXISTS students (id INTEGER PRIMARY KEY, name TEXT NOT NULL, age INTEGER)''')
# 插入数据
cursor.execute("INSERT INTO students (name, age) VALUES ('Alice', 20)")
cursor.execute("INSERT INTO students (name, age) VALUES ('Bob', 22)")
# 查询数据
cursor.execute("SELECT * FROM students")
rows = cursor.fetchall()
for row in rows: print(row)
# 关闭连接
conn.close()

2. 使用SQLAlchemy

SQLAlchemy是一个Python SQL工具包和对象关系映射器(ORM)。使用SQLAlchemy可以更方便地进行数据库操作。

from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
# 定义模型
Base = declarative_base()
class Student(Base): __tablename__ = 'students' id = Column(Integer, primary_key=True) name = Column(String) age = Column(Integer)
# 创建数据库引擎
engine = create_engine('sqlite:///example.db')
Base.metadata.create_all(engine)
# 创建会话
Session = sessionmaker(bind=engine)
session = Session()
# 添加数据
student = Student(name='Alice', age=20)
session.add(student)
session.commit()
# 查询数据
students = session.query(Student).all()
for student in students: print(student.name, student.age)
# 关闭会话
session.close()

实战案例

1. 学生信息管理系统

以下是一个简单的学生信息管理系统,包括学生信息的添加、查询、修改和删除。

from sqlalchemy import create_engine, Column, Integer, String, ForeignKey
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker, relationship
# 定义模型
Base = declarative_base()
class Student(Base): __tablename__ = 'students' id = Column(Integer, primary_key=True) name = Column(String) age = Column(Integer) courses = relationship('Course', back_populates='student')
class Course(Base): __tablename__ = 'courses' id = Column(Integer, primary_key=True) name = Column(String) student_id = Column(Integer, ForeignKey('students.id')) student = relationship('Student', back_populates='courses')
# 创建数据库引擎
engine = create_engine('sqlite:///example.db')
Base.metadata.create_all(engine)
# 创建会话
Session = sessionmaker(bind=engine)
session = Session()
# 添加学生
student = Student(name='Alice', age=20)
session.add(student)
session.commit()
# 添加课程
course = Course(name='Math', student=student)
session.add(course)
session.commit()
# 查询学生
students = session.query(Student).all()
for student in students: print(student.name, student.age)
# 修改学生信息
student = session.query(Student).filter_by(name='Alice').first()
student.age = 21
session.commit()
# 删除学生
session.delete(student)
session.commit()
# 关闭会话
session.close()

2. 电商购物车

以下是一个简单的电商购物车示例,包括商品的添加、删除、修改数量和计算总价等功能。

from sqlalchemy import create_engine, Column, Integer, String, ForeignKey
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker, relationship
# 定义模型
Base = declarative_base()
class Product(Base): __tablename__ = 'products' id = Column(Integer, primary_key=True) name = Column(String) price = Column(Float)
class Cart(Base): __tablename__ = 'carts' id = Column(Integer, primary_key=True) product_id = Column(Integer, ForeignKey('products.id')) quantity = Column(Integer) product = relationship('Product')
# 创建数据库引擎
engine = create_engine('sqlite:///example.db')
Base.metadata.create_all(engine)
# 创建会话
Session = sessionmaker(bind=engine)
session = Session()
# 添加商品
product = Product(name='Apple', price=0.5)
session.add(product)
session.commit()
# 添加购物车
cart = Cart(product_id=product.id, quantity=10)
session.add(cart)
session.commit()
# 计算总价
total_price = sum(c.quantity * c.product.price for c in session.query(Cart).all())
print(total_price)
# 删除商品
session.delete(product)
session.commit()
# 关闭会话
session.close()

总结

本文介绍了SQLite与Python集成的常用方法,并通过实战案例展示了如何进行数据库操作。通过学习本文,您将能够轻松掌握SQLite与Python集成,高效地进行数据库操作。

评论
一个月内的热帖推荐
啊龙
Lv.1普通用户

9545

帖子

31

小组

3242

积分

赞助商广告
站长交流