news 2026/4/23 19:13:57

SQLite 入门指南:在 Python 中轻松操作数据库

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SQLite 入门指南:在 Python 中轻松操作数据库

引言

如果你刚开始学习编程或数据存储,可能会觉得数据库听起来有点“高大上”。但实际上,使用数据库可以非常轻松,尤其是当你选择了 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 开始,逐步过渡到更复杂的应用场景。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 10:50:39

2025NOIP T2

题目:感觉没紫题(上位蓝题到下位紫,考虑到考场上难度自动上升半段,给紫题也合理首先我们考虑什么情况下会出错:很显然,对于某个数i,如果w2,按照贪心策略如果选中一定不会出错(在/2的…

作者头像 李华
网站建设 2026/4/23 8:35:48

Linux常见系统故障案例说明并修复解决(上)

Linux系统故障排查思路实践教程(下)https://coffeemilk.blog.csdn.net/article/details/155903189 一、恢复Linux下的误删除文件 1.1、故障情况 在Linux系统上执行【rm -rf】误删除了指定分区的全部数据,且被删除的这个分区文件系统类型是【…

作者头像 李华
网站建设 2026/4/23 14:13:16

480万人才缺口下,零基础转行网络安全:是风口还是挑战?

网络安全作为近两年兴起的热门行业,成了很多就业无门但是想转行的人心中比较向往但是又心存疑惑的行业,毕竟网络安全的发展史比较短,而国内目前网安的环境和市场情况还不算为大众所知晓,所以到底零基础转行入门网络安全之后&#…

作者头像 李华
网站建设 2026/4/23 12:47:42

基于SpringBoot的体育馆管理系统(源码+lw+部署文档+讲解等)

课题介绍 本课题聚焦传统体育馆管理流程繁琐、场地预约低效、资源调度混乱的痛点,开展基于SpringBoot的体育馆管理系统的设计与实现工作。系统以Java为核心开发语言,依托SpringBoot框架搭建轻量高效的后端服务架构,负责处理场地预订、器材管理…

作者头像 李华
网站建设 2026/4/23 12:58:03

C++多线程入门

博主介绍:程序喵大人 35 - 资深C/C/Rust/Android/iOS客户端开发10年大厂工作经验嵌入式/人工智能/自动驾驶/音视频/游戏开发入门级选手《C20高级编程》《C23高级编程》等多本书籍著译者更多原创精品文章,首发gzh,见文末👇&#x…

作者头像 李华
网站建设 2026/4/23 11:26:06

28、实用 awk 程序大集合

实用 awk 程序大集合 在日常的数据处理和文本操作中,awk 是一个功能强大且灵活的工具。本文将介绍一系列实用的 awk 程序,涵盖文件分割、输出复制、去重、计数、查找重复单词、闹钟设置以及字符转写等多个方面。 1. 文件分割程序 文件分割程序的主要功能是将一个大文件分割…

作者头像 李华