引言

如果你刚开始学习编程或数据存储,可能会觉得数据库听起来有点“高大上”。但实际上,使用数据库可以非常轻松,尤其是当你选择了 SQLite —— 一个轻量、易用、功能强大的嵌入式数据库。

本博客将带你从零开始,学习如何使用 Python 操作 SQLite 数据库,并通过一个实际案例展示如何基于 FastAPI 构建一个简单的 CRUD API。

一.什么是 SQLite?

SQLite 是一个基于 C 语言开发的轻量级 SQL 数据库引擎。它不需要独立的服务器,整个数据库就存储在一个文件中,非常适合小型项目、移动应用或学习使用。

1.1 SQLite 的特点:

 轻量级:无需安装,直接使用

易于学习:语法与标准 SQL 非常相似

高性能:对于中小型数据操作非常快

跨平台:支持 Windows、macOS、Linux

二.Python 操作 SQLite 数据库

Python 自带 sqlite3 模块,无需额外安装。下面我们一步步学习如何操作。

2.1准备工作

import sqlite3

2.2 创建数据库和表

conn = sqlite3.connect('students.db')
cur = conn.cursor()

cur.execute('''
CREATE TABLE IF NOT EXISTS students (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    age INTEGER,
    grade TEXT
)
''')

conn.commit()
conn.close()

2.3  插入数据

conn = sqlite3.connect('students.db')
cur = conn.cursor()

cur.execute("INSERT INTO students (name, age, grade) VALUES (?, ?, ?)", ('Alice', 20, 'A'))
cur.execute("INSERT INTO students (name, age, grade) VALUES (?, ?, ?)", ('Bob', 22, 'B'))

conn.commit()
conn.close()

2.4查询数据

conn = sqlite3.connect('students.db')
cur = conn.cursor()

cur.execute("SELECT * FROM students")
rows = cur.fetchall()

for row in rows:
    print(row)

conn.close()

2.5 更新与删除数据

conn = sqlite3.connect('students.db')
cur = conn.cursor()

# 更新数据
cur.execute("UPDATE students SET grade = ? WHERE name = ?", ('A+', 'Bob'))

# 删除数据
cur.execute("DELETE FROM students WHERE name = ?", ('Bob',))

conn.commit()
conn.close()

更新:

删除:

三.练习(多练习加深印象)

创建 books.db 数据库,建立 books 表,字段包括 id、title、author、year

插入三条书籍数据

import sqlite3

# 连接到数据库(如果不存在会自动创建)
conn = sqlite3.connect('books.db')
cursor = conn.cursor()

# 创建 books 表
cursor.execute('''
    CREATE TABLE IF NOT EXISTS books (
        id INTEGER PRIMARY KEY AUTOINCREMENT,
        title TEXT NOT NULL,
        author TEXT NOT NULL,
        year INTEGER
    )
''')

# 插入三条书籍数据
books_data = [
    ('The Great Gatsby', 'F. Scott Fitzgerald', 1925),
    ('To Kill a Mockingbird', 'Harper Lee', 1960),
    ('1984', 'George Orwell', 1949)
]

cursor.executemany('INSERT INTO books (title, author, year) VALUES (?, ?, ?)', books_data)

# 提交事务
conn.commit()

# 查询并显示插入的数据
print("已插入的数据:")
cursor.execute('SELECT * FROM books')
for row in cursor.fetchall():
    print(f"ID: {row[0]}, 书名: {row[1]}, 作者: {row[2]}, 年份: {row[3]}")

# 关闭连接
conn.close()

四.总结

SQLite 是一个非常友好的数据库入门选择,搭配 Python 的 sqlite3 模块,你可以轻松实现数据的存储与管理。通过函数和面向对象封装,代码会更易维护。而使用 FastAPI + SQLAlchemy 则可以构建出功能完整、结构清晰的 Web API。

如果你对数据库操作还不熟悉,建议从简单的 SQLite 开始,逐步过渡到更复杂的应用场景。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐