Python sqlite3查询操作过程解析


Posted in Python onFebruary 20, 2020

这篇文章主要介绍了Python sqlite3查询操作过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

记录查询操作及获取查询结果列字段的方法

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

SQLite 数据库中有一个特殊的表叫 sqlite_master,sqlite_master 的结构如下:

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

可以通过查询这个表来获取数据库中所有表的信息

Python sqlite3查询操作过程解析

SELECT * FROM sqlite_master WHERE type='table';

查询某张表的所有字段

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

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 相关文章推荐
Windows下安装python2.7及科学计算套装
Mar 05 Python
快速入门python学习笔记
Dec 06 Python
基于DataFrame改变列类型的方法
Jul 25 Python
详解配置Django的Celery异步之路踩坑
Nov 25 Python
python 调用有道api接口的方法
Jan 03 Python
Python实现的爬取百度文库功能示例
Feb 16 Python
python的turtle库使用详解
May 10 Python
利用Python模拟登录pastebin.com的实现方法
Jul 12 Python
解决Django Static内容不能加载显示的问题
Jul 28 Python
如何使用python3获取当前路径及os.path.dirname的使用
Dec 13 Python
pytorch查看通道数 维数 尺寸大小方式
May 26 Python
PyTorch中model.zero_grad()和optimizer.zero_grad()用法
Jun 24 Python
python利用datetime模块计算程序运行时间问题
Feb 20 #Python
pytorch数据预处理错误的解决
Feb 20 #Python
Python异常继承关系和自定义异常实现代码实例
Feb 20 #Python
Python安装与卸载流程详细步骤(图解)
Feb 20 #Python
PyCharm 专业版安装图文教程
Feb 20 #Python
Python3.6安装卸载、执行命令、执行py文件的方法详解
Feb 20 #Python
Python 实现黑客帝国中的字符雨的示例代码
Feb 20 #Python
You might like
以实例全面讲解PHP中多进程编程的相关函数的使用
2015/08/18 PHP
php mailer类调用远程SMTP服务器发送邮件实现方法
2016/03/04 PHP
ThinkPHP5.1框架数据库链接和增删改查操作示例
2019/08/03 PHP
Yii 框架使用Forms操作详解
2020/05/18 PHP
JQUERY实现左侧TIPS滑进滑出效果示例
2013/06/27 Javascript
js中方法重载如何实现?以及函数的参数问题
2013/08/01 Javascript
YUI模块开发原理详解
2013/11/18 Javascript
javascript校验价格合法性实例(必须输入2位小数)
2014/05/05 Javascript
AngularJS中$watch和$timeout的使用示例
2016/09/20 Javascript
jquery easyui validatebox remote的使用详解
2016/11/09 Javascript
基于angular实现三级联动的生日插件
2017/05/12 Javascript
详解Vue 2.0封装axios笔记
2017/06/22 Javascript
解决在Bootstrap模糊框中使用WebUploader的问题
2018/03/22 Javascript
深入理解Vue 组件之间传值
2018/08/16 Javascript
JavaScript实现连连看连线算法
2019/01/05 Javascript
vue实现扫码功能
2020/01/17 Javascript
Vue组件模板的几种书写形式(3种)
2020/02/19 Javascript
[33:39]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第二局
2016/02/27 DOTA
[52:27]2018DOTA2亚洲邀请赛 3.31 小组赛B组 paiN vs Secret
2018/04/01 DOTA
python中安装Scrapy模块依赖包汇总
2017/07/02 Python
Python排序搜索基本算法之堆排序实例详解
2017/12/08 Python
python re模块的高级用法详解
2018/06/06 Python
在Python文件中指定Python解释器的方法
2019/02/18 Python
python递归下载文件夹下所有文件
2019/08/31 Python
PyTorch安装与基本使用详解
2020/08/31 Python
html5表单及新增的改良元素详解
2016/06/07 HTML / CSS
科沃斯机器人官网商城:Ecovacs
2016/08/29 全球购物
法国一家芭蕾舞鞋公司:Repetto
2018/11/12 全球购物
大学生学习党课思想汇报
2014/01/03 职场文书
养殖项目策划书范文
2014/01/13 职场文书
爬山的活动方案
2014/08/16 职场文书
违反交通法规检讨书
2014/09/10 职场文书
民主评议党员自我评价材料
2014/09/18 职场文书
python 实现德洛内三角剖分的操作
2021/04/22 Python
解决Golang time.Parse和time.Format的时区问题
2021/04/29 Golang
使用 Docker Compose 构建复杂的多容器App
2022/04/30 Servers