百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT技术 > 正文

5分钟快速掌握在Python使用SQLite数据库,

wptr33 2025-08-01 21:34 6 浏览

小巧、稳定、快速!我为什么喜欢用SQLite

毕竟,对于大多数人和大多数业务来说,SQLite 都是一个极佳的数据库。

这个低开销、跨平台、自包含、零配置、事务性 SQL 数据库引擎让你一方面可以摆脱磁盘文件存储的痛苦(关系型数据存储),一方面可以让你摆脱各个大型数据库安装和运维的痛苦(单文件的存在,非常适合于关系型数据库初学者的学习和使用)。

在 Python 中,直接有一个内置库提供了对 SQLite 数据库的支持,所以我们可以在 Python 中直接使用 SQLite 数据库。

这可以让我们直接将 SQLite 数据库作为数据存储载体应用在我们的 Python 程序中,比如图形界面程序(PyQt5、Kivy、Tkinter)中的数据存储、Web 应用程序中的数据存储(Django 使用 SQLite 作为默认的数据库后端)

下面,我们就来了解一下 SQLite 在 Python 中的使用。

引入模块

Python 的内置库 sqlite3 提供了对 SQLite 数据库的支持。我们在 Python 代码中引入这个模块,即可拥有操作 SQLite 数据库的能力。

import sqlite3

创建和连接数据库

因为 SQLite 是一个文件型的数据库,所以我们不需要像其他数据库那样配置 URL、端口、账号和密码,直接对 SQLite 数据库文件进行连接即可。

# 创建或连接数据库
conn = sqlite3.connect("test.db")

如果本地不存在这个 test.db 数据库文件,则会自动创建。

创建数据表

创建或连接好数据库之后,就可以在数据库中创建数据表了。

大部分朋友,对数据表应该都很熟悉了。如果对数据库的概念还不是了解,那么可以用 Excel 来类比数据库,以快速对数据库有个基本的概念:

  • 一个 Excel 文件就是一个数据库;
  • 一个工作簿就是一个数据表;
  • 工作簿里面的列就是数据表里面的列名;
  • 工作簿里面的行就是数据库里面的行数据;

创建数据表,我们需要使用到 SQL 中的数据定义语言(DDL)。

SQL 的数据表创建语法为:

CREATE TABLE 表名称
(
列名称 1 数据类型,
列名称 2 数据类型,
列名称 3 数据类型,
....
)

假设我们需要创建的表如下图所示:

那么,我们的表创建语句应该为:

CREATE TABLE user(
	user_id int,
	user_name text,
	password text
)

我们在 Python 中通过实例化 SQLite 连接的 execute() 方法来执行 SQL 语句。

# 创建 user 数据库
conn.execute('''
CREATE TABLE user(
	user_id int,
	user_name text,
	password text
)
''')

下面的大部分 SQL 操作,我们也都是使用这个方法来执行。

写入数据

数据表创建之后,我们可以使用 SQL 的数据操作语言来对数据进行增删改查了。

也就是:

  • SELECT - 从数据库表中获取数据
  • UPDATE - 更新数据库表中的数据
  • DELETE - 从数据库表中删除数据
  • INSERT INTO - 向数据库表中插入数据

下面,我们往数据表中写入一些数据,同样是使用 execute() 方法:

# 写入数据
conn.execute("INSERT INTO user (user_id,user_name,password) VALUES(1,'zmister','123456')")
conn.execute("INSERT INTO user (user_id,user_name,password) VALUES(2,'mrdoc','234323')")
conn.execute("INSERT INTO user (user_id,user_name,password) VALUES(2,'python','hahaheheh')")

最后,再调用连接的 commit() 方法以提交这些语句。

conn.commit()

这样我们就往 test.db 数据库的 user 数据表中插入了 3 条数据。

插入、更新和删除语句都需要调用 commit()方法。

查看数据库

除了在程序的代码中对数据库进行操作外,日常我们一般使用图形化的数据库管理工具对数据库进行管理。

在此推荐 sqlite expert 这个软件,免费、小巧、没有试用期,不用到处找破解方法。

你可以在其官方下载页面进行下载安装:
http://www.sqliteexpert.com/download.html

安装之后,我们直接选择本地的 SQLite 数据库文件就可以打开:

在这里面可以进行数据库的各种管理操作和各种数据操作,在此暂且不表,自己把玩吧。

查询表数据

如果我们需要查询表数据,那么需要使用到 SELECT 语句,比如查询我们刚刚创建的 user 表内的数据:

SELECT * FROM user

我们在 Python 代码中继续实现它:

# coding:utf-8


import sqlite3


# 创建或连接数据库
conn = sqlite3.connect("test.db")


# 查询数据
cursor = conn.execute("SELECT * FROM user")
for row in cursor.fetchall():
    print(row)


conn.close()

这将逐行在控制台打印出数据:

可以看到,返回的数据是以元组的形式呈现的,如果我们需要以字典的形式进行程序,可以指定 row_factory 以改变游标的可调用对象。

# coding:utf-8


import sqlite3


def dict_factory(cursor, row):
    d = {}
    for idx, col in enumerate(cursor.description):
        d[col[0]] = row[idx]
    return d


# 创建或连接数据库
conn = sqlite3.connect("test.db")
conn.row_factory = dict_factory


# 查询数据
cursor = conn.execute("SELECT * FROM user")
for row in cursor.fetchall():
    print(row)


conn.close()

这返回的就会是字典形式的数据:

更新数据

如果需要更新数据,那么就得使用 UPDATE 语句:

UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

例如,我们要把 user_id 为 1 的数据的 password 字段更新为 888888:

UPDATE user SET password = '888888' WHERE user_id = 1;

放在 Python 中执行的代码为:

# coding:utf-8


import sqlite3


# 创建或连接数据库
conn = sqlite3.connect("test.db")


# 更新数据
conn.execute("UPDATE user SET password = '888888' WHERE user_id = 1;")
conn.commit()


# 查询数据
cursor = conn.execute("SELECT * FROM user")
for row in cursor.fetchall():
    print(row)


conn.close()

返回查询的数据表示数据已更新:

删除数据

删除数据需要使用 DELETE 语句,其语法为:

DELETE FROM 表名称 WHERE 列名称 = 值

例如,我们要把 user_name 为 python 的数据删除,其语句为:

DELETE FROM user WHERE user_name = 'python'

放在 Python 中执行的代码为:

# coding:utf-8


import sqlite3


# 创建或连接数据库
conn = sqlite3.connect("test.db")


# 删除数据
conn.execute("DELETE FROM user WHERE user_name = 'python'")
conn.commit()


# 查询数据
cursor = conn.execute("SELECT * FROM user")
for row in cursor.fetchall():
    print(row)


conn.close()

返回查询的数据表示数据已删除:

最后

SQLite 作为一个小巧强悍的数据库,有足够的优势值得你在自己的项目和程序中作为数据存储的载体。


而且 Python 内置库原生提供了对 SQLite 的支持,如果你困于文本文件存储的性能和大型数据库的难以维护,就来试试 SQLite 吧。

相关推荐

Python 中 必须掌握的 20 个核心:str()

str()是Python中用于将对象转换为字符串表示的核心函数,它在字符串处理、输出格式化和对象序列化中扮演着关键角色。本文将全面解析str()函数的用法和特性。1.str()函数的基本用法...

python中的函数报错后继续运行而不是停止整个程序

要让main...

如何在身份证号码中提取出生年月日的函数公式

在不同软件中,从身份证号码提取出生年月日的函数公式不同,以下是常见软件的方法:Excelo假设身份证号码在A列,在B列提取出生年月日,在B2单元格输入公式=TEXT(MID(A2,7,8),"...

sql中的一些CTE和开窗函数相关用法

CTE的优势提高可读性:将复杂查询分解为更简单的部分避免重复子查询:同一CTE可以在查询中多次引用递归查询:处理层次结构数据模块化SQL:将复杂查询拆分成逻辑模块...

【SQL】SQL 语法差异大全(PgSQL/MySQL/Oracle/TiDB/OceanBase)

以下是针对不同数据库系统的SQL语法差异总结,按功能分类展示:一、基础查询1.分页查询...

MySQL索引:从原理到实战的终极指南

MySQL索引原理揭秘MySQL索引是数据库高效查询的核心机制,其原理基于特定的数据结构(主要是B+Tree)和数据库引擎(如InnoDB)的实现策略。索引本质上是一种空间换时间的策略,虽然会占...

如何在本地安装开源人工智能Agent——AutoGen Studio的安装

AutoGen是微软出品的一个用于创建可自主行动,或与人类协同工作的多智能体AI应用程序的框架。下面来介绍如何在本地安装AutoGenStudio,AutoGenStudio是一个低代码界...

小巧WinForm库存系统,竟能实现这些功能?

第一次体验真正“握在手里的”库存控制,是在一个微型工厂的仓库运输带旁。顶着仓库里金属味和三十几平米的闷热,老王蹲在地上,一边用笔在账本上划格,一边嘴里嘟囔:“每次都说要数字化管理,数字在哪儿呢?”透过...

有关SQLite数据库的介绍

SQLite,是一种轻型的数据库,它的设计目标是嵌入式的,而且已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/U...

SQLite 数据库Web管理工具

概述SQLite数据库以其轻量级和易于配置的特点,成为了许多项目中的首选数据库。尽管它的便捷性受到了广泛的认可,但对于数据库的管理和维护,尤其是在没有图形界面工具的情况下,开发者往往需要通过复杂的命...

SqlLite数据库注意要点分析

1.验证sqlite是否安装配置好了。执行sqlite3命令。当执行该命令的时候没有传递任何参数表示默认连接到了一个内存数据库,当退出该程序的时候,数据库自动销毁。退出命令:.quit.ex...

python 连接sqlite

在Python中,你可以使用标准库sqlite3来连接SQLite数据库。在Python中,sqlite3模块是内置的,无需使用pip进行安装。sqlite3模块提供了与SQ...

提升数据库搜索效率:探索SQLite的向量搜索扩展

大家好!今天我们要聊一个特别酷炫的东西——sqlite-vec,一个能让SQLite飞起来的向量搜索扩展。如果你对数据库的搜索速度不满意,那你可得好好看看这篇文章了。...

Qt编程进阶(21):Qt操作SQLite数据库及实例

QtSql模块Qt提供的QtSql模块实现了对数据库的访问,同时提供了一套与平台和具体所用数据库均无关的调用接口。此模块为不同层次的用户提供了不同的丰富的数据库操作类。例如,对于习惯使用SQL语法的用...

5分钟快速掌握在Python使用SQLite数据库,

小巧、稳定、快速!我为什么喜欢用SQLite...