Python sqlite3 查询操作与结果字段获取详解

Ivy
Ivy
发布时间:2026-10-13| 5人浏览过
原创

本文详细解析 Python 中使用 sqlite3 进行数据库查询的方法。重点介绍如何通过查询 sqlite_master 表获取所有表名,利用 PRAGMA table_info 获取指定表的字段信息,并通过 Python 代码示例演示如何同时获取 SQL 查询结果及其对应的列名,为数据库操作提供实用参考。

本文深入解析 Python 中 sqlite3 模块的查询操作流程,并通过具体示例代码展示关键步骤,旨在为读者在学习或实际工作中处理 SQLite 数据库查询提供具有参考价值的指导。

主要记录执行 SQL 查询操作的方法,以及如何从查询结果中提取对应的列字段名称。

获取 SQLite 数据库表结构与字段信息

1. 在 sqlite3 中获取所有表名及各表字段名的操作方法

SQLite 数据库内部维护着一个名为 sqlite_master 的特殊系统表,用于存储数据库对象的结构信息,该表的具体结构定义如下:


CREATE TABLE sqlite_master ( 
type TEXT, 
name TEXT, 
tbl_name TEXT, 
rootpage INTEGER, 
sql TEXT 
); 

通过直接查询 sqlite_master 表,可以获取数据库中所有已创建表的详细信息。


SELECT * FROM sqlite_master WHERE type='table';

若要查询某张特定表的所有字段信息,可使用以下方法:


PRAGMA table_info(表名);
示例:
PRAGMA table_info(sqlite_sequence);

Python 中获取查询结果与列名

2. 在 Python 中操作 sqlite3,获取 SQL 查询结果及对应列名的具体实现方法


class DBOperate(object):
  """
  数据库操作类
  """
  def __init__(self, db_file_path):
    # 连接 sqlite db
    # 关于commit(),如果isolation_level隔离级别默认,那么每次对数据库的操作,都需要使用该命令,
    # 设置 isolation_level=None,变为自动提交模式
    self._db_file_path = db_file_path
    self.conn = sqlite3.connect(self._db_file_path, check_same_thread=False, isolation_level=None, timeout=1000)
    # 创建游标
    self.cur = self.conn.cursor()

  def queryall(self, sql):
    """
    查询所有的数据及对应的列名
    :param sql:
    :return:
    """
    self.cur.execute(sql)
    # TODO 获取查询结果的列名
    columns_tuple = self.cur.description
    # columns_tuple示例: (('TACHE_NAME', None, None, None, None, None, None), ('avgtime', None, None, None, None, None, None), ('DATE', None, None, None, None, None, None), ('ANALYSIS_TIME', None, None, None, None, None, None))
    columns_list = [field_tuple[0] for field_tuple in columns_tuple]
    # TODO 获取查询结果
    query_result = self.cur.fetchall()
    self.cur.close()
    return query_result, columns_list

  def close(self):
    """
    关闭数据库连接
    :return:
    """
    if self.cur is not None:
      self.cur.close()
    if self.conn is not None:
      self.conn.close()

以上内容为本文的全部分享,希望能为读者的学习带来帮助,同时也欢迎对本站内容给予支持。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。